Nico Rosberg extended his championship lead after edging out his Mercedes team-mate Lewis Hamilton to victory at the Red Bull Ring.
The Silver Arrows were able to benefit from Williams thanks to a superior pit-stop strategy despite the straightline speed for Felipe Massa and Valtteri Bottas.
Williams were able to score their best result of the season by finishing in third and fourth, with Bottas achieving his maiden podium.
Massa initially led the Austrian Grand Prix from the first Williams one-two on the grid since 2003, while his team-mate was passed by the fast-starting Mercedes of Rosberg.
But Bottas used Williams’ superior straightline advantage to retake second on the run up the hill to Turn 2.
A superb start on the opening lap from Lewis Hamilton made up for his disappointing showing in qualifying.
The Mercedes driver made up several places including a brave pass on Fernando Alonso’s Ferrari at Turn 8.
Rosberg pitted for the first time on lap 11 of 71, releasing Hamilton to attack the Williams pair.
Hamilton pitted two laps later, while Williams waited an extra tour before bringing in race leader Massa.
The Brazilian lost out during this first round of pit-stops. He was jumped by Rosberg and later passed by Hamilton at Turn 2 on his out-lap.
By contrast, a great in-lap from Bottas, who was last of the leading group to pit on lap 15, kept him ahead of Hamilton and allowed him to jump ahead over his Williams team-mate.
All four ran behind the Force India of Sergio Perez during the second phase of the race, owing to the Mexican running an alternative strategy from P15 on the grid.
Mercedes warned Hamilton about overheating brakes running closely behind the Williams, while Rosberg made a point of continually moving out of Perez’s slipstream on the straights to cool his own car down.
Perez led until lap 27, when Rosberg dived down the inside unchallenged at Turn 2. Bottas followed through up the inside on the exit as Perez ran wide.
Hamilton produced a copycat move at Turn 2 on the following lap to take third place and set fastest lap as he chased after Bottas and new race leader Rosberg.
The top three bunched up as Rosberg ran wide coming out of Turn 1 on lap 30, allowing Bottas to get into DRS range and dragging Hamilton with him, while Massa held a watching brief slightly further back in fourth.
Rosberg took a few laps to recover his rhythm, but managed to gain a two-second lead before Mercedes decided to pit its two drivers for the second time on consecutive tours on laps 39 and 40.
Hamilton came in first and rejoined fifth, just ahead of Kevin Magnussen’s McLaren, while Rosberg’s slightly faster stop ensured he stayed ahead of Hamilton.
Williams decided not to react immediately, pitting Bottas from the lead on lap 42, and the Finn rejoined behind both Mercedes.
Once Massa and the long-running Ferrari of Fernando Alonso came in for their final stops on lap 44 and 47 respectively, the race finally boiled down to a battle royale between the Silver Arrows.
Hamilton was told his brake temperatures were now under control, freeing him up to take the fight to his team-mate, but his front-left brake returned to a critical status before he could get close enough to attack.
He came back strongly again across the final few laps, but finished just under two seconds adrift after a mistake at Turn 3 on the final lap.
Alonso’s marathon second stint helped him finish just a few seconds shy of the Williams drivers in fifth, while Perez converted his alternative strategy into an excellent top six finish by passing Kevin Magnussen’s McLaren at Turn 2 in the closing stages.
Despite that that lost position, Magnussen was able to claim his best finish since the season-opening Australian Grand Prix by finishing seventh.
While Canadian Grand Prix winner Daniel Ricciardo, who passed Nico Hulkenberg’s Force India on the final lap despite not being allowed to use his ‘overtake’ button, took eighth.
This was a difficult day for the Red Bull owner Dietrich Mateschitz. First Ricciardo drop down from fifth on the grid on the opening lap, followed by world champion Sebastian Vettel momentarily lost drive on the second lap and then retired shortly after half distance to save engine mileage.
In fact, this was a horrible race for the four-time world champion. A lap down due to a loss of power in the Red Bull RB10. Vettel tried to regain lost ground but damaged his front wing while racing with Esteban Gutierrez. The team later on instructed him to stop the car.
Rounding out the top ten is Ferrari’s Kimi Raikkonen. This was The Iceman’s 200th Formula 1 race but there was no reasons to celebrate as his car lacked power.
At least he finished ahead of Jenson Button’s McLaren and the lapped Lotus of Pastor Maldonado.
So an interesting race in terms of strategy. Mercedes scored their sixth one-two this season and Nico Rosberg extends his lead in the championship over Lewis Hamilton by 29 points.
The British Grand Prix at Silverstone is next and it’s going to be another battle royale for top honours between the Silver Arrows.
Austrian Grand Prix, race results after 71 laps:
1. Nico Rosberg Mercedes 1h27m54.967s
2. Lewis Hamilton Mercedes +1.932s
3. Valtteri Bottas Williams-Mercedes +8.172s
4. Felipe Massa Williams-Mercedes +17.358s
5. Fernando Alonso Ferrari +18.553s
6. Sergio Perez Force India-Mercedes +28.546s
7. Kevin Magnussen McLaren-Mercedes +32.031s
8. Daniel Ricciardo Red Bull-Renault +43.522s
9. Nico Hulkenberg Force India-Mercedes +44.137s
10. Kimi Raikkonen Ferrari +47.777s
11. Jenson Button McLaren-Mercedes +50.966s
12. Pastor Maldonado Lotus-Renault -1 lap
13. Adrian Sutil Sauber-Ferrari -1 lap
14. Romain Grosjean Lotus-Renault -1 lap
15. Jules Bianchi Marussia-Ferrari -2 laps
16. Kamui Kobayashi Caterham-Renault -2 laps
17. Max Chilton Marussia-Ferrari -2 laps
18. Marcus Ericsson Caterham-Renault -2 laps
19. Esteban Gutierrez Sauber-Ferrari -2 laps
Jean-Eric Vergne Toro Rosso-Renault 59 laps
Sebastian Vettel Red Bull-Renault 34 laps
Daniil Kvyat Toro Rosso-Renault 24 laps
1. Nico Rosberg 165
2. Lewis Hamilton 136
3. Daniel Ricciardo 83
4. Fernando Alonso 79
5. Sebastian Vettel 60
6. Nico Hulkenberg 59
7. Valtteri Bottas 55
8. Jenson Button 43
9. Felipe Massa 30
10. Kevin Magnussen 29
11. Sergio Perez 28
12. Kimi Raikkonen 19
13. Romain Grosjean 8
14. Jean-Eric Vergne 8
15. Daniil Kvyat 4
16. Jules Bianchi 2
1. Mercedes 301
2. Red Bull/Renault 143
3. Ferrari 98
4. Force India/Mercedes 87
5. Williams/Mercedes 85
6. McLaren/Mercedes 72
7. Toro Rosso/Renault 12
8. Lotus/Renault 8
9. Marussia/Ferrari 2
10. Sauber/Ferrari 0
11. Caterham/Renault 0
Next race: British Grand Prix, Silverstone. June 20-22.