Vingegaard otherwise seemed to be on his way to victory when he attacked and created a gap from the remaining riders with two and a half kilometers to go.
But the steep climb clearly took a toll on his strength, and he was never able to extend the lead.
Almeida initially tried to catch Vingegaard but gave up at first only to save his energy for the final acceleration that brought him the stage win on a somewhat chaotic day.
Vingegaard now leads the race with 5 seconds over Jorgenson whilst in third place sits Mattias Skjelmose (33 second after) who also finished third on todays stage.
"I’m super happy. It was a hard day. A lot happened in this stage, and we had some snow on the course. But we never gave up. I think we deserved it and I’m very happy for it," Almeida said after the stage.
"I was feeling quite good. Of course, to be honest, I’m not the best guy with the cold temperatures. I was suffering with that, but I never gave up. The climb wasn’t steep enough and it was hard to make the group smaller. Jonas attacked and I wasn’t in the best position, but I gave my best and I’m super happy again."
The race was temporarily suspended with 46 km to go when worsening weather conditions, including heavy sleet and hail, forced race commissaires to stop the race while riders changed clothes and got hot drinks in the freezing conditions.
At 29km to go, though, the race was stopped again to let the peloton regroup ahead of a proper restart.