Daniel Ricciardo won the Chinese GP after a spectacular charge in an epic race packed with controversy and overtakes galore.
Ricciardo surged from sixth to first in the space of 10 laps after Red Bull opportunistically pitted for fresh tyres behind a Safety Car.
Verstappen: Vettel crash my fault
Chinese GP: How the race unfolded
Sebastian Vettel was relegated to just eighth after a collision with Max Verstappen. The Red Bull driver was hit with a 10-second time penalty by the race stewards, promoting Lewis Hamilton to fourth and within nine points of championship leader Vettel.
Ricciardo sealed victory with an inches-to-spare pass on Mercedes' Valtteri Bottas in the closing stages.
The Finn then had to hold off compatriot Kimi Raikkonen for second place while Vettel ran off track as he was out-muscled by McLaren's Fernando Alonso.
Verstappen implodes as Ricciardo explodes
A race which had been slow-burning into a fascinating battle between Vettel and Bottas for victory was transformed into a barnstorming classic after a collision between the two Toro Rossos of Pierre Gasly and Brendon Hartley triggered a Safety Car.
At that stage, Bottas held a narrow lead over Vettel after undercutting the pole-sitting Ferrari at the first round of pit-stops.
But quick thinking by the Red Bull team suddenly upgraded their drivers into victory contenders as Verstappen and Ricciardo used the Safety Car window to take an opportunistic stop for fresh rubber while the Ferraris and Mercedes stayed out.
Verstappen had already been off track during an attempted move on Hamilton, successfully completed five laps later, before he tangled with Vettel as he fought for third.
Ricciardo had already surged past Hamilton and Vettel into second while Raikkonen, a distant sixth at the halfway stage after being kept on a prolonged first stop by Ferrari seemingly in an attempted bid to slow down Bottas, rounded Hamilton as the world champion took avoiding action of the spinning Verstappen and Ferrari.
Ricciardo's winning move was typically daring, the Red Bull driver outbraking Bottas to seal what was surely the most memorable of his six victories in F1.
What Shanghai means for the title race
While it was all smiles from Ricciardo in the post-race press conference, the glum faces of Bottas and Raikkonen couldn't have been more contrasting.
Bottas felt he had the victory in his grasp prior to the Safety Car and Raikkonen's plunge to sixth after the first round of stops will prompt further awkward questions about his position in the team.
Hamilton was equally downbeat, out-qualified by Bottas on Saturday and out-raced by his team-mate a day later.
"We have a tough battle ahead of us," Hamilton admitted to Sky Sports F1. "We've been underperforming and yesterday and today have been a disaster on my side. I need to try and rectify that and get myself back into normal performance back or otherwise more valuable points will be lost.
"I'm thankful for a couple of incidents that happened ahead kept us in the battle."
Vettel spoke privately to Verstappen immediately after the race and was circumspect in his public criticism of the Dutchman.
"He's not young anymore," the four-time world champion told Sky F1. "But this can happen when you have done 300 races. Inside the car judgements are very difficult to make. But you have to ultimately have these things in mind and make sure you don't crash. We were both lucky."
Ultimately, the Ferrari driver was unfortunate to leave Shanghai with his championship lead trimmed rather than extended. But it's Hamilton and Mercedes who will travel to Baku, F1's next stop in two weeks' time, with the most to worry about.
How Ricciardo took victory
Lap 30: The Safety Car is deployed after a collision between the two Toro Rossos leaves debris strewn across the track. Only Red Bull among the frontrunners pit as Verstappen and Ricciardo put on softs.
Lap 35: The full race resumes. Bottas keeps the lead from Vettel and Hamilton but the Red Bulls are poised to attack on fresh tyres.
Lap 37: Ricciardo overtakes Raikkonen with a late move into the hairpin for fifth. Vettel, Hamilton and Verstappen are split by just over one second.
Lap 39: Verstappen runs wide as he tries to pass Hamilton but comes back on track ahead of Raikkonen.
Lap 40: Ricciardo out-brakes Hamilton into the chicane for third place.
Lap 41: Verstappen follows Ricciardo in passing Hamilton as he returns to fourth place
Lap 42: Ricciardo charges past Vettel as Hamilton criticises Mercedes' tyre strategy over team radio.
Lap 43: Verstappen and Vettel collide. Raikkonen overtakes Hamilton as the Mercedes takes evasive action to avoid the spinning Ferrari and Red Bull cars.
Lap 45: Ricciardo sneaks past Bottas for the lead of the race. The Red Bull has charged from sixth to first in ten laps.
Lap 47: Race stewards find Verstappen guilty of causing the collision with Vettel. A ten-second penalty will be applied to the Red Bull's race time.
Lap 48: Verstappen passes Hamilton for the second time in seven laps.
Lap 53: Raikkonen catches Bottas with Verstappen just behind.
Lap 55: Fernando Alonso passes Vettel for seventh position. Vettel accuses Alonso of intentionally driving him off track.
Lap 56: Ricciardo crosses the line for victory. Bottas holds on for second ahead of Raikkonen. Hamilton crosses the line within ten seconds of Verstappen to take fourth. Vettel maintains eighth place just in front of Sainz.