Nico Rosberg extended his lead at the top of the drivers' standings to 29 points with victory at the Red Bull Ring in Austria.
The German started from third on the grid and led a one-two finish for the Mercedes team who overcame the challenge of the Williams duo after they had locked out the front row in qualifying.
It was the Brazilian Felipe Massa who had taken his first pole position since his head injury back in 2009 at the Hungaroring and the 33-year-old got away strongly to lead at the start of the race.
Meanwhile, Rosberg had got himself ahead of Valtteri Bottas, but the Finnish driver was able to use the impressive straight line speed of the Williams to get back into second.
Start of the day however belonged to Lewis Hamilton. The Brit had made costly mistakes in qualifying arguably costing himself pole position and by not posting a time was forced to start from ninth.
Hamilton flew off the line, diving in between Daniil Kvyat and Kimi Raikkonen before charging through to fifth place. But he wasn't done there. He then went on to pass Fernando Alonso with an excellent overtake to make it five places gained in the opening lap.
Remarkably, Hamilton found himself on the tail of his team-mate and championship rival, Rosberg. As the first pit-stops took place, the front four were soon to take a re-shuffle and Williams sacrificed their advantage. Rosberg emerged ahead of the group and was in theoretical lead of the race but for Sergio Perez on his own strategy.
Despite coming out ahead of Hamilton, Massa was caught on his cold tyres and unable to prevent him coming through. Bottas had made the jump on his team-mate at the stops and was able to split the Mercedes, keeping up at a consistent pace.
He stayed in second all the way until the second round of stops where Hamilton took the place with an undercut. It left him with an opportunity to put pressure on Rosberg for the last part of the race.
The gap was not major, but he never really threatened to attack for the lead and with brake issues on the car, appeared to cut his losses and make do with the second place finish. And that's how the pair crossed the line. A return to the normality after Daniel Ricciardo's surprise win last time out in Canada. 1.9 seconds the difference at the flag.
Bottas came home for his first Formula One podium. The first of many more to come judging by the class he is showing. It had been a fantastic weekend for Williams, one of real intent and progress to genuinely compete with Mercedes and Massa held on to fourth.
He was closely followed by Fernando Alonso who quietly is doing a brilliant job in the Ferrari. Keeping the points ticking over in a struggling period. Sergio Perez' sixth place was a strong drive from 11th and a good way to react from the drama of Canada. While Kevin Magnussen achieving seventh for McLaren is about as good as the team can ask for right now.
Their was to be no continuation of celebration for Ricciardo after his maiden victory but he showed determination to pass Nico Hulkenburg late on for eighth. Hulkenburg continues his run of points finishes this season with ninth while Kimi Raikkonen rounded of the top ten.
It was yet more disappointment for the four-time Formula One world champion Sebastian Vettel who stopped on track early with car trouble before his eventual retirement on lap 37.