McLaren's Lewis Hamilton took his second victory of the season as he beat Lotus driver Kimi Raikkonen in the Hungarian Grand Prix.
Hamilton led throughout but had to fend off a determined challenge from both Raikkonen and the Finn's team-mate Romain Grosjean, who was third.
Red Bull's Sebastian Vettel was fourth ahead of Ferrari's Fernando Alonso and McLaren's Jenson Button.
Alonso extended his title lead over Red Bull's Mark Webber to 40 points.
The Australian was ahead of the Spaniard after their second stops, but Webber suffered a failed differential and made a third stop for fresher tyres with 13 laps to go, which dropped him back down to eighth place at the flag.
Webber is two points ahead of Vettel in the championship, with Hamilton a further five points adrift and one ahead of Raikkonen as F1 heads into its mid-season four-week break before the Belgian Grand Prix on 2 September.
Jenson Button, slower and harder on his tyres than team-mate Hamilton, finished the race sixth, ahead of the Williams of Bruno Senna, Webber, Ferrari's Felipe Massa and Mercedes driver Nico Rosberg.
Hamilton's win came as a result of a controlled defensive drive, not dissimilar to Alonso's victory in Germany a week ago.
The McLaren driver led from pole position and measured his pace ahead of the faster Lotus cars.
The 2008 world champion said: "There is a long way to go and we have a lot of work to do, but we are going to give it everything."
Grosjean was his main opposition for the first two-thirds of the race, as Raikkonen bided his time fighting up from sixth place on the first lap, after he dropped a place to Alonso at the start after a temporary problem with his Kers power-boost system.
But clever strategy by Lotus, founded on their car's excellent tyre usage, gave Raikkonen clear air in the middle of the race before his second and final stop and put in an impressive sequence of laps to make up enough ground to pass Button, Alonso, Vettel and Grosjean.
The two Lotus cars were side by side rounding the first corner when Raikkonen emerged from the pits but the Finn legitimately pushed the Frenchman to the outside of the track on the exit of the corner and consolidated second place, before setting off after Hamilton.
He quickly closed on to the McLaren's rear, and the question then became which driver's strategies would work out best - and would Hamilton's tyres last when he had made his final stop five laps before Raikkonen.
But the extra wear generated by following another car took the edge off Raikkonen's tyres, and he had to settle for second place as Hamilton took his first win since the Canadian Grand Prix in June and became only the third driver after Alonso and Webber to win more than one race this season.
Raikkonen said: "We came second, it's not enough. We had some problems with the Kers in the first lap which didn't help us, but we had good speed. We keep trying the next race to win, we keep saying that but at least we are up there all the time. I take the second place, but for sure we are not happy until we win."
Grosjean was left to fend off Vettel, a problem that removed itself when the German made a third stop for tyres late in the race with 10 laps of the 69 remaining.
Vettel used his fresher tyres to try to close a 15-second gap on the Lotus but ran out of time.
Button ran third in the early laps, but his heavier tyre wear forced him on to a three-stop strategy, one more than Hamilton's.
Button's race was further hindered by coming out from his second stop behind Senna, although the Briton managed to rejoin ahead of the Brazilian after his final stop having made up ground following Senna's second and final stop.