Max Verstappen had jumped pole-sitter Sainz off the line, but the Dutchman enjoyed only a few corners in the lead before the race was suspended due to a six-car smash at the first turn.
Zhou Guanyu had been rolled upside down by contact with the out-of-control George Russell, who had been tipped into a spin when he accidentally cut across a surging Pierre Gasly.
The Chinese drive skidded the gravel trap along his roll hoop and was pitched into the air at the asphalt apron near the wall, launching his car over the tyre barrier and into the catch fencing designed to protect spectators from debris.
His car thudded to the ground in the narrow space between the back of the tyre wall and the fence, where he had to be extricated by the medical team after a long delay.
He was released from the medical centre miraculously uninjured before the end of the race.
Further back, Sebastian Vettel rear-ended Alex Albon as the Thai driver slowed for the accident, sending his Williams into the concrete pit wall and spinning across the track, where he collected Yuki Tsunoda and Esteban Ocon.
Albon was helicoptered to hospital for precautionary checks but was released on Sunday evening.
The race was red flagged, and only Zhou, Albon and Russell were unable to return to pit lane - Russell had stopped on track to help with Zhou’s extrication, but the marshals had collected his car anyway assuming he was out of the race - and the grand prix resumed in qualifying order because to little of the first lap had been completed before the stoppage.
This time Sainz wasn’t to be beaten off the line, and a robust defence against Verstappen, squeezing him onto the first-turn apex to cost him momentum, won him the lead.
Verstappen’s victory gambit didn’t last the race, with severe floor damage after running over some debris badly curillin his pace.
Now behind Sainz was his teammate, Charles Leclerc, who was pressuring his team to let him through. Eventually Ferrari acquiesced, but not until after the pit stop, costing Leclerc precious time to Lewis Hamilton, who was charging in his updated Mercedes and looked set for victory.
The Briton had fresher tyres at the end of the race and was just two seconds behind the Ferrari pair with 13 laps to go when the safety car was called for Ocon’s stopped Alpine, neutralising his strategy.
Ferrari curiously left Leclerc out in the lead on old hard tyres but pitted Sainz for fresh softs, and Hamilton and Sergio Perez behind him did likewise. It left Leclerc defenceless at the restart, and Sainz barged back into the lead with fresh rubber and into a lead he would never come under threat of relinquishing.
“What a day,” Sainz said. “Winning my first F1 GP and with Scuderia Ferrari in front of this amazing crowd, at one of my favourite tracks, Silverstone, is literally amazing.”
Hamilton didn’t have the same blockbuster pace on softs as he expected, and he spent much of the rest of the race in a spectacular wheel-to-wheel duel with Leclerc and Perez, including a memorable double pass on both out of Club, the final corner. He was repassed by Village, this time with Perez taking second place, and had to wait another lap before he could get the job done on Leclerc around the fast Stowe corner.
By then Perez had built himself a decisive buffer to hold second place ahead of the home-crowd favourite in the Mercedes, completing an impressive comeback from 17th thanks to an early pit stop to repair some damage.
“It is a good day for us and the team after such a messy weekend for us,” he said. “After lap one I was last, so to come away with second place is a great result.
“We had to fight for it, and it feels good to have a result like this.”
Hamilton was sanguine about defeat, pleased at least that his Mercedes looked back on form after a disastrous run of slow races since early May.
“I gave it everything today,” Hamilton said. “I’m so, so grateful for all the hard work the team did to get an upgrade here. We’ve made a step closer to [Red Bull Racing and Ferrari], so we’ve got to keep pushing.”
Leclerc was gutted to trail home fourth after contending for victory, and in his best diplomatic tones lashed the team for compromising his race by not letting him race Sainz early and then not pitting him for fresh rubber late in the race.
Fernando Alonso beat Lando Norris to fifth in the pit stops behind the safety car. Alpine was quick to pit the Spaniard, but McLaren waited a lap, costing him the place.
Verstappen trailed home to seventh place, making it decent damage limitation for his broken floor.
Mick Schumacher scored the first points of his F1 career with eighth in a strong recover from 19th on the grid, beating Aston Martin’s Sebastian Vettel and Haas teammate Kevin Magnussen.