With a headwind discouraging attacks for the vast majority of the race and the sprinters' teams seemingly in control, the 109th edition of Milan-San Remo came down to battle royale on the Poggio and the descent that followed.
The action on the early slopes came from unexpected sources as Marcus Burghardt (Bora-Hansgrohe) and Jean-Pierre Drucker (BMC Racing) briefly went clear, before an even less well-known rider in Latvian champion Krists Neilands (Israel Cycling Academy) launched the biggest attack of the race so far.
However it was the man in his wheel who was really of interest, with none other than Vincenzo Nibali following Neilands's move and using it as a launchpad for a huge acceleration of his own.
Nathan Haas (Katusha-Alpecin) and Enrico Battaglin (LottoNL-Jumbo) tried and failed to respond but there was hesitation from the other major favourites as Peter Sagan (Bora-Hansgrohe) and Michal Kwiatkowski (Team Sky) looked at each other.
Nibali's lead was up to eight seconds by the top of the Poggio with 5.4km to go, and was still the same by the bottom of the descent as the sprinters' teams moved back to the front to set up a nail-biting final kilometre.
Groupama-FDJ and Quick-Step Floors both worked hard to try and set up Arnaud Démare and Elia Viviani respectively, while Nibali's lead was trimmed down second by second with the Italian dying a thousand deaths through the final kilometre.
As the finish line came into sight, Démare, Caleb Ewan (Mitchelton-Scott), and Alexander Kristoff (UAE Team Emirates) launched their sprints behind, but Nibali had just about enough daylight to hold on, crossing the line with his hands a loft to take an emotional and popular victory, with Ewan taking second just a few metres behind.
How it happened
Heavy rain fell on the helmets of the 175 riders who would contest the 109th edition of Milan-San Remo, the longest race on the cycling calendar at 294km in length, not including a lengthy neutralised section out of Milan that would take the total distance ridden beyond 300km.
Unsurprisingly it was some of the smaller Italian teams who seemed most keen to get their riders in the inevitably doomed breakaway of the longest race of the years with Bardiani CSF, Nippo-Vini Fantini, and Wilier Triestina-Selle Italia being particularly active in the early stages.
After a few kilometres a group of nine riders were able to get away with all of the Italian teams in the race being represented.
In the breakaway were Mirco Maestri and Lorenzo Rota (Bardiani CSF), Evgeny Koberniak (Gazprom Rusvelo), Guy Sagiv and Dennis Van Winden (Israel Cycling Academy), Sho Hatsuyama (Nippo-Vini Fantini), Charles Planet (Novo Nordisk), Matteo Bono (UAE Team Emirates), and Jacopo Mosca (Wilier Selle Italia).
The break's lead steadily grew through the opening hour of racing as the peloton behind bedded in for the long, flat slog across the pan-flat Po Valley, content just to stay warm and well-fed through the opening 130km of racing towards the Passo del Turchino.
The nine leaders enjoyed a maximum lead of 6-30, relatively slim considering the length of the race, as the bigger teams shared pace-setting duties on the front of the peloton.
The steadily rising road towards the Passo del Turchino saw the break's gap steadily fall minute by minute, reaching a low point of just 1-40 as they crested the climb and descended towards the coast.
However with still more than 130km remaining the peloton realised that it was too soon to catch the break, and allowed the gap to grow out once again for the long run along the coast, getting back up towards six minutes with 115km to go.
Bora-Hansgrohe, Team Sky, and Quick-Step Floors all put men on the front to share the work with the likes of Juraj Sagan, Tim Declercq, and Luke Rowe - riding his first Monument since a career-threatening broken leg last summer - working particularly hard.
By the time the break reached the first of the Tre Capi (three short hills along the coast), the Capo Mele with 51.4km remaining, the sun had come out but the break's advantage had been trimmed significantly, coming back down to less than two minutes.
The Capo Cervo saw the break's advantage continue to fall to 1-30, before the Capo Berta, the toughest of the trio of climbs saw the gap fall below a minute for the first time since Milan.
With the Cipressa and Poggio drawing ever closer, the stress in the bunch was evident as a couple of crashes brought down the EF Education First-Drapac duo of Simon Clarke and Dan McLay as well as Alexis Vuillermoz (Ag2r La Mondiale) and Alexandr Vlasov (Gazprom-Rusvelo).
Fatigue was also starting to bite in the break, as the escapees were split in two with Maestri, Rota, Bono, and Van Winden pushing on while the rest of the day's breakaway riders fell back into the jaws of the peloton, their work done for the day.
However there was also action at the back of the peloton as Marcel Kittel (Katusha-Alpecin) became the first of the sprinters to be dropped, and having to rely on his team-mates to pace him back to the bunch during the eight kilometres between the base of the Berta and the start of the Cipressa.
Kittel regained contact even while BMC Racing and Groupama-FDJ moved to the front to continue to raise the pace in an attempt to put Kittel out of contention once and for all, but also to make sure that Greg Van Avermaet and Arnaud Démare were in good positions for this crucial climb.
The remaining four breakaway riders were finally caught with 30km remaining and the race was truly on as the speed ramped up and riders started to battle for position on the approach to the base of the Cipressa.
At San Lorenzo al Mare the peloton swung right and onto the 5.6km climb with Caleb Ewan (Mitchelton-Scott) and Démare the best positioned of the sprinters right at the front of the bunch.
However there was a familiar sight at the back of the bunch as Kittel was dropped at the very start of the climb, while Ignatas Konovalovas (Groupama-FDJ) set a strong pace to deter attacks and keep former champion Démare in a good position.
Konovalovas led for the first half of the climb before Dylan Van Baarle (Team Sky), still wearing leg warmers and arm warmers, was sent to the front by Kwiatkowski to raise the pace and slim down the sizeable bunch.
As the top of the climb approached Van Baarle was lent a hand by Astana, but most of the sprinters were still close to the front with André Greipel (Lotto-Soudal) fighting for position ahead of the technical descent, and all of the other main contenders, including Peter Sagan (Bora-Hansgrohe), still in contention.
Groupama-FDJ once again moved to the front to control the descent, Démare enjoying an armchair ride in third wheel, and the riders started to position themselves for the nine kilometre run along the coast towards the Poggio.
The approach to the Poggio was like the lead-out for a sprint finish, the Groupama-FDJ train on the left-hand side of the road, the Lotto-Soudal train on the right, with Mitchelton-Scott, Bora-Hansgrohe, Quick-Step Floors, and Astana all closely in attendance.
However one rider who wasn't close to the front was the defending champion Kwiatkowski, who was playing it cool at the back of the bunch with just three kilometres to the base of the final climb, before quickly moving up on the left-hand side accompanied by three Team Sky team-mates.
Kwiatkowski's timing was perfect as the nervous bunch saw several riders crash with 10km to go as Mark Cavendish's nightmare start to the season continued as he ploughed head-first into a bollard, going flying over the handlebars and taking down a number of other riders.
Cavendish's race was over, but back at the front it was Marcus Burghardt (Bora-Hansgrohe) who led onto the Poggio, and simply rode off the front being followed by Jean-Pierre Drucker (BMC Racing) as Bahrain-Merida let a gap open up. Looking behind Burghardt eased up to wait for team leader Sagan, leaving Drucker to push on alone.
The next move came from Latvian champion Krists Neilands (Israel Cycling Academy) who sprung across to Drucker with none other than Vincenzo Nibali (Bahrain-Merida) in his wheel as Nathan Haas (Katusha-Alpecin) and Enrico Battaglin (LottoNL-Jumbo) scrambled to chase on behind.
With six kilometres to go Nibali went again and continued to open a significant lead as Kwiatkowski and Sagan looked at each other at the front of the bunch. Neither wanted to work, so it was up to Sagan's Bora-Hansgrohe team-mate Daniel Oss to do the chasing.
However Nibali's gap was a decent one, and one of the best descenders in professional cycling led by seven or eight seconds onto the technical descent down into the town of San Remo with 5.5km to go.
Second by second, the gap only grew as the finish grew closer, before Matteo Trentin (Mitchelton-Scott) attacked from the peloton behind, prompting a response from Sagan with Kwiatkowski once again sitting in his wheel.
Trentin was able to open a slender gap on the chasers, while Nibali's gap edged down a little by the bottom of the descent, the Italian holding a lead of nine seconds as the road flattened out.
With 1.3km Trentin was caught as Groupama-FDJ and Quick-Step Floors once again came to the front, eating into Nibali's lead which was just five or six seconds as he swung right onto the finishing straight.
Julian Alaphilippe led Quick-Step around the final corner with Nibali, fight with his Merida bike, in his sights before handing over to Maximilano Richeze to lead out Viviani.
However it was Alexander Kristoff (UAE Team Emirates) who opened his sprint on the left-hand side while Ewan came through the middle to surge clear of the group.
But even this astonishing turn of speed from Ewan was not enough to reel in Nibali, who just about had time to sit up, pull down his Bahrain-Merida jersey, and soak up the adulation of an ecstatic Italian crowd to take a dream Milan-San Remo victory.
Milan-San Remo 2018: Milan to San Remo, 294km
1. Vincenzo Nibali (Ita) Bahrain-Merida, in 7-18-43
2. Caleb Ewan (Aus) Mitchelton-Scott
3. Arnaud Démare (Fra) Groupama-FDJ
4. Alexander Kristoff (Nor) UAE Team Emirates
5. Jurgen Roelandts (Bel) BMC Racing
6. Peter Sagan (Svk) Bora-Hansgrohe
7. Michael Matthews (Aus) Team Sunweb
8. Magnus Cort (Den) Astana
9. Sonny Colbrelli (Ita) Bahrain-Merida
10. Jasper Stuyven (Bel) Trek-Segafredo, all at same time
Thank you for reading 5 articles this month* Join now for unlimited access
Enjoy your first month for just £1 / $1 / €1
*Read 5 free articles per month without a subscription
Join now for unlimited access
Try first month for just £1 / $1 / €1