Lewis Hamilton staged a thrilling fightback to catch and pass Max Verstappen for victory in the Hungarian Grand Prix.
Hamilton's eighth win of the season puts a headlock on the championship after a tense race-long battle between the drivers and their strategists at the Mercedes and Red Bull teams.
Hamilton came very close to pulling off a brave move for the lead around the outside of the 150mph Turn Four.
But a gamble by Mercedes to make an extra pit stop gave Hamilton much faster tyres for the closing stages and he closed a 20-second deficit in less than 20 laps to pass Verstappen for the lead with three laps to go.
It puts Hamilton 62 points ahead in the championship with nine races to go – and a maximum of 234 points available. His sixth title is as good as won.
Changing of the guard? Not yet, according to Hamilton, who took his 81st career win.
It was a mouth-watering fight between the greatest driver of his generation, Hamilton, and the man who is emerging as the leader of the next, and the first time they had disputed a grand prix victory in such a way.
The two were in a race of their own, with the Ferraris more than a minute behind at the flag and Hamilton's team-mate Valtteri Bottas taken out of contention by a touch with Hamilton and then Ferrari's Charles Leclerc on the first lap, which broke the Finn's front wing.
There was stalemate between Verstappen and Hamilton in the first stint, after the Dutchman converted pole position into a lead at the first corner, and Hamilton moved into second by passing Bottas, who had qualified ahead, into the second corner.
But as the time for pit stops approached, Hamilton closed right in on Verstappen, forcing Red Bull into an early stop on lap 25 to ensure Mercedes did not do the same and 'under-cut' them into the lead.
Hungarian Grand Prix Results
1 Great BritainLewis Hamilton Mercedes
2 Netherlands Max Verstappen Red Bull
3 Germany Sebastian Vettel Ferrari
4 Monaco Charles Leclerc Ferrari
5 Spain Carlos Sainz Jnr McLaren
6 France Pierre Gasly Red Bull
7 Finland Kimi Raikkonen Alfa Romeo
8 Finland Valtteri Bottas Mercedes
9 Great Britain Lando Norris McLaren
10 Thailand Alexander Albon Toro Rosso
11 Mexico Sergio Perez Racing Point
12 Germany Nico Hulkenberg Renault
13 Denmark Kevin Magnussen Haas
14 Australia Daniel Ricciardo Renault
15 Russia Daniil Kvyat Toro Rosso
16 Great Britain George Russell Williams
17 Canada Lance Stroll Racing Point
18 Italy Antonio Giovinazzi Alfa Romeo
19 Poland Robert Kubica Williams
not classified France Romain Grosjean Haas