The Norwegian was well placed heading under the flamme rouge after being brought up by Luke Rowe and Leonardo Basso but, on the narrow finishing straight, Halvorsen was unable to plot a course through the bunch and found himself hard up against the barriers.
Phil Bauhaus (Team Sunweb) beat Marcel Kittel (Katusha-Alpecin) to the win in a photo finish as several riders finished within a bike length. Halvorsen came home 13th after the tough headwind sprint.
Following the crosswind chaos of day two the 133 kilometre stage three looked to be playing out in more sedate circumstances, yet the day’s early four-man break was sucked up 50km from the finish as the wind started to blow once again.
It was full on for the next 10 kilometres as the peloton split in two, but as the race changed direction the action quickly settled down again, coming back together for the long run in to the line.
Team Sky played the waiting game in the final kilometres, keeping out of the wind behind a number of sprint trains, before Rowe came to the fore, bringing Basso and Halvorsen up in to the mix.
Halvorsen remained well placed in the frantic finale and chose to take the right hand side of the road but couldn't battle his way through the sprint scrum.
Jonathan Castroviejo finished safely to remain in GC contention ahead of tomorrow's technical 12.6km time trial around Al Maryah Island.