Daniel Ricciardo claimed his second win of 2014 at a Hungarian Grand Prix that will be remembered for some time.
The Australian overtook Lewis Hamilton and Fernando Alonso late on to complete a carbon copy of the final few laps from his first win in Canada as rain and safety cars hit Mercedes' charge.
Wet start as Hamilton starts from pit-lane
Following the fire that caused Lewis Hamilton to drop out early in qualifying, the Mercedes team rebuilt an almost entirely new car overnight as the Briton opted for a pit-lane start.
Then the weather threw the best variable the Mercedes driver could have hoped for as rain, less than an hour before the start, caused every driver to start on the intermediate tyres.
At the start Nico Rosberg led away from pole with Sebastian Vettel on his tail but it was Valtteri Bottas who moved up into second at turn one as he used a wider line to pass the Red Bull.
Fernando Alonso moved up to fourth as Daniel Ricciardo made a cautious getaway dropping to sixth behind the only man to have won in the rain in Budapest, Jenson Button.
Hamilton made his getaway from the pit-lane and immediately spun under braking for turn two, luckily he didn't damage the car, despite hitting the barrier, and was able to carry on.
Ricciardo changes to slicks as Ericsson crashes
The first stint was characterised by Rosberg pulling out a healthy lead over Bottas in second with Vettel unable to get past in third.
Meanwhile the damp conditions allowed Hamilton to make his way through the field and was on the fringes of the top after just a dozen laps.
Then came a major turning point for Rosberg as Marcus Ericsson lost control of his Caterham exiting turn three hitting the wall and causing the Safety Car to be deployed.
The decision came just as Rosberg and the top four passed the pit-lane entrance, however, Button and Ricciardo both jumped into the pits to take advantage of the moment.
With some teams claiming more rain was coming, Button stayed on the intermediates, however, as the track was quickly drying, Ricciardo and the rest switched the soft dry tyres.
Poor timing meant Rosberg, Bottas, Vettel and Alonso had to wait an extra lap and this allowed Ricciardo and Button to move to the front.
Ricciardo leads as Perez crashes
Romain Grosjean caused a prolongation of the safety car period losing control of the Lotus also at turn three, but when the race resumed Button was able to move ahead in the still damp turn one though Ricciardo was in the pound seats.
No more rain meant the McLaren team's decision to keep both cars on intermediates backfired and a second stop gave Ricciardo the lead over Felipe Massa.
Lewis Hamilton continued his move through, entering the top ten, and was quickly only a car behind the disadvantaged Rosberg.
The Toro Rosso of Jean-Eric Vergne was upto fourth and his top speed was enough to keep Rosberg, Vettel and Hamilton at bay.
Despite the drying track, the Astroturf on the outside was still wet and Sergio Perez found that out first hand as he lost control of the Force India exiting the final turn and spun into the pit wall causing a second Safety Car period.
Alonso leads as strategies play out
During the second safety car period, Ricciardo and the two Williams again elected to pit and while the Australian stayed on the soft compound the Williams went to the medium.
This put Alonso into the lead with Vergne second and the Mercedes and Red Bull's running close behind.
Rather than make overtakes, Ricciardo opted to look after his new tyres and pushed when those ahead pitted for the second time.
Vettel saw his charge halted as he almost repeated Perez's crash from earlier on but just kept the car out the wall while Ricciardo returned to the top holding a big lead from the rest of the field but with another stop to make.
A final showdown to the flag
As those going through to the end began to close on the Red Bull out front, Ricciardo pitted emerging in fourth. Alonso led from Hamilton with Rosberg becoming frustrated in third as he couldn't get close enough for Lewis to fulfil an order to allow his team-mate through.
The German had a final stop to make, so when he did he was approaching 20 seconds behind with just over 12 laps to go.
At the front though Ricciardo, on his fresh tyres, was quickly closing Hamilton who was also closing on leader Alonso.
Entering the final five laps that was the order from third to first before the Australian made his move.
A bold move around the outside of Hamilton at turn two and through three saw the Red Bull man upto second before he retook the lead with DRS into turn one with another bold move up the inside.
He was clear to take his second career win, but behind the battle was not over. Rosberg had taken several seconds per lap out of the duelling trio and caught them by the final lap. However, there wasn't quite enough time as Alonso took second with Hamilton third and Rosberg fourth.
Felipe Massa held off a hard-charging Kimi Raikkonen to take fifth as Sebastian Vettel kept the second Williams of Valtteri Bottas at bay to take seventh, Jean-Eric Vergne and Jenson Button completed the top 10.
Hamilton completes incredible recovery
After starting in the pit-lane Lewis Hamilton's drive to third is one of the best lights-to-flag improvement in race position ever seen.
The Briton officially moved 19 positions forward from where he started which, including the little spin on lap one, is unheard of at the Hungarian Grand Prix.
His third to Rosberg's fourth means the German is now 11 points clear in the championship heading into the summer break before the sport heads to Belgium in a month's time.
Danny Ric's day
But the biggest party in Budapest tonight will belong to Red Bull as Daniel Ricciardo continues being the only non-Mercedes driver to win a race in 2014.
He also cements his position as 'best of the rest' in the championship and is now 16 points clear of Fernando Alonso in third.
As I said the sport now enters its summer break but the next race sees F1 head to the fabulous Spa-Francorchamps circuit for the Belgian Grand Prix, where the race to Abu Dhabi will begin in Ernest.