Lewis Hamilton lost the lead on lap one but came back in tricky conditions and waltzed off into the distance to take his 92nd F1 win at Portimao in Portugal.
Hamilton started on pole and held the lead into turn one whilst his teammate Valtteri Bottas defended from Max Verstappen.
Bottas ran Verstappen out to dry and held onto second. Sergio Perez then had a look around the outside of Verstappen up the hill of turn four but the two touched and Perez was spun round and Carlos Sainz in his McLaren swept past both into third.
On the exit of turn five however Hamilton struggled for traction with the freezing medium tyres on his car. Bottas was able to pass him easily and Sainz followed into second.
At the same point on lap two, Sainz had more grip and was able to pass Bottas on the exit taking the lead of the race.
For a few laps, Sainz was able to hold onto the lead until the mighty Mercedes were able to sweep back past and regain control of the race.
Bottas led from Hamilton for 15 more laps before Hamilton closed up and passed him into turn one after an aggressive defence from Bottas.
Hamilton then clearly had much more pace in the cold conditions which are usually Bottas’s forte. He was then unchallenged eventually finishing 25.6 seconds clear of Bottas.
Verstappen came home third matching Bottas for pace in the final stint after a slower start to the race to round out the podium.
Charles Leclerc finally converted a star qualifying performance into a race result in fourth after starting on the mediums. Usually he would fall back into the pack but this weekend the pace was with Charles Leclerc.
Pierre Gasly converted his supreme practice pace into a brilliant race performance as well seizing fifth with two laps from the end ahead of Carlos Sainz and Sergio Perez who made an amazing recovery from being last on lap one.
Esteban Ocon had a very good drive to finish in eighth after staying out on medium tyres for 55 laps before pitting for softs at the end and finishing in the points ahead of his teammate Daniel Ricciardo and Sebastian Vettel, back in the points for the first time since Mugello in September.
Kimi Raikkonen was up to sixth in the early laps after a demon start from 16th and was able to fight for the points all the way till the end with Vettel only passing him a few laps from the end after a 54 lap stint on mediums for the highly experienced Finn.
Alex Albon was out of the points in twelfth and never looked like he had pace to compete. He was able to stick with Verstappen in the closing stages after Verstappen lapped him but it was too little too late for Albon as he fights for his seat.
Lando Norris was running in the points until a collision with Lance Stroll after Stroll turned in on him forced him to pit and put him out of the points. Norris also had a slow puncture later on and dropped further back.
George Russell was 14th after another strong drive in 14th placing in the points for a lot of it until all the pitstops shook out.
Antonio Giovinazzi was 15th with Kevin Magnussen and Romain Grosjean behind.
Nicholas Latifi and Daniil Kvyat rounded out the finishers with Lance Stroll the only non finisher retiring after being at the back from his collision with Norris and a further penalty for track limits abuse.