George Russell secured his first win in F1 as Mercedes ended its season-long drought.
The Briton led home a one-two for the Silver Arrows, with Lewis Hamilton fighting back through the top 10 having clashed with bitter rival Max Verstappen in the opening exchanges.
The result marks Mercedes' first victory since the Saudi Arabian Grand Prix last season and ensures the Brackley-based team has avoided a first winless campaign since 2011.
Carlos Sainz finished third ahead of Ferrari team-mate Charles Leclerc, who himself overcame early-race contact to finish fourth in a dramatic 71-lap event.
Hamilton and Verstappen renew rivalry
Both Mercedes drivers made fine starts to lead the Red Bulls into turn one as Lando Norris jumped ahead of Leclerc to take fifth.
But further down the field at turn eight, Daniel Ricciardo ended Kevin Magnussen's stunning weekend in a bitter fashion, contact between the pair putting both out of the race and triggering a safety car.
At the restart on lap seven, Verstappen attacked Hamilton for second around the outside into turn one.
Both drivers went into turn two aiming for the same patch of tarmac, with contact leaving both with heavy damage and plummeting through the field.
Verstappen was forced into the pits for a new front wing whilst floor damage left Hamilton scrambling, though he was able to continue. Moves on Mick Schumacher and Pierre Gasly promoted the Briton back into the top six by lap 10.
Also at the restart and into turn six, Leclerc was sent into the barriers by Norris' McLaren, though was able to recover to the pits.
Both Verstappen and Norris were handed five-second time penalties, though the Dutchman's was far more dubious.
The contact between last year's championship protagonists allowed Russell to control the lead ahead of Perez, who struggled on his soft tyres.
As strategy took over, Hamilton stretched his pit window 12 laps longer than Sainz, seven longer than Perez and five longer than his team-mate.
Using fresher tyres, the seven-time champion ate into the margin between himself and the top three and though Ferrari pitted Sainz before Hamilton arrived, Perez was easily overtaken on lap 45.
The top three all pitted across the next four laps with the race seemingly heading towards a simple end, only for Norris' eventful day to end with a power outage for his MCL36.
The virtual safety car was deployed on lap 52 but with the marshals struggling to move the car away from the racetrack, the full safety car was triggered.
Mercedes allow drivers to race
Russell asked his Mercedes team whether he and Hamilton would be able to race or whether a secure one-two would be at the top of the agenda, to which the response was: "You are racing but be respectful."
Both Mercedes were on a set of soft tyres whilst Perez was on mediums, whilst a free stop for Sainz behind the safety car put the Spaniard back in the fight for the win.
At the restart, however, Russell did everything he needed to clear the DRS activation range and consolidate the lead.
Behind, Sainz was all over Perez for three laps before the DRS aided his eventual move in to the podium at turn four.
Leclerc made it two Ferraris past the Mexican with eight laps to go with the medium tyres hurting on the RB18.
Up front, Russell was fast enough in the middle part of the lap to keep Hamilton at arm's length.
It means the Briton righted the wrongs of the 2020 Sakhir Grand Prix, where two separate issues robbed him of a maiden victory when standing in for his current team-mate.
Sainz finished third despite Leclerc's cries for a position swap to help with his push for second in the drivers' standings, a call that was made to Verstappen to help Perez, though the two-time champion refused.
Fernando climbed 11 positions to finish fifth for Alpine, utilising fresh tyres after the safety car to scythe through the top 10.
Verstappen finished ahead of Perez after ignoring team orders, with Esteban Ocon - who did heed calls to help his team-mate despite a tumultuous sprint - finished eighth for Alpine.
Valtteri Bottas collected two points for Alfa Romeo in ninth with Lance Stroll taking the final point.
Sebastian Vettel was hurt by the late safety car and dropped to 11th, finishing ahead of Zhou Guanyu and Mick Schumacher.
Pierre Gasly was next but was penalised for speeding in the pit lane, bringing him close to a race ban with 10 points of 12 already on his licence.
Alex Albon and Nicholas Latifi beat Yuki Tsunoda at the rear of the field after a mix-up for the Japanese driver concerning safety car procedure.
The AlphaTauri was not listed by the FIA to un-lap itself, whilst the Williams duo made their way around the circuit.