Leclerc, who hadn’t been on the podium since Miami, passed Verstappen three times on the track, as the Ferrari and Red Bull drivers were on opposing strategies.
A late throttle pedal concern threatened to derail Leclerc’s third win of the 2022 Formula One season.
However, he was not joined on the podium by Sainz, who raced similarly to Leclerc but was eliminated by a late engine fire, giving Lewis Hamilton third place.
Leclerc remained in second place despite starting third. Sainz was squeezed on the outside to rejoin side-by-side with George Russell before fighting back through Turn 3 on the inside.
Verstappen led Leclerc by 0.985 seconds at the end of lap one of 71, with Sainz a further 1 second back, while Perez eventually recovered to the pits for hards but retired on lap 17.
Unlike the Saturday sprint race, Verstappen was unable to break away in the early laps, as Leclerc maintained DRS within the 1s window.
The gap between Turn 1 and Turn 3 was as little as 0.5s, and with Perez heading for an early bath, Ferrari had the potential to split its strategy in order to leapfrog Verstappen.
On lap 8, Leclerc took his first tentative look up the inside of Verstappen into Turn 3, but decided against it for the next three laps.
Despite a big moment of oversteer and a couple of lock ups for Leclerc, setting the fastest lap of the race at that point allowed the Monegasque to escape DRS.
The Ferraris continued to pound around without stopping, with Leclerc holding a 4s lead over Sainz until the race leader pitted at the end of lap 26 for a slick 2.6s switch to hards.
The Scuderia duo returned to the track behind Verstappen but with the upper hand on race pace – Leclerc setting a new fastest lap – after Sainz immediately pitted for hards.
On lap 33, Leclerc got within DRS range of Verstappen before making another decisive move for the lead at Turn 3. Verstappen was able to fall back and gain DRS for the run to Turn 4, but he opted against a proper retaliation to secure second place.
Verstappen complained of inconsistent grip levels, so Red Bull pitted him again on lap 37 for another set of hards, giving Ferrari room for another stop 12 laps later.
Both Leclerc and Sainz had quick changes to another set of hards but faced the prospect of being demoted, with Verstappen 2.5 seconds ahead with 20 laps to go.
Again, Leclerc settled quickly into a rhythm on the white-wall rubber, gaining DRS on Verstappen only two laps later, the Ferrari moving to the outside for the run to Turn 3.
Leclerc wisely left. Verstappen had the apex, but he turned sharper to get on the throttle sooner and nail the exit to take the lead for the final time.
Sainz was about to demote Verstappen for a Ferrari 1-2 when a wisp of smoke began to waft out of his engine cover as he approached Turn 4 in the Red Bull’s wake.
The Ferrari’s engine then failed spectacularly, with Sainz attempting to pull up on the exit as flames burst, but the slope of the escape rolled, making it difficult for him to stop the car and jump out.
As flames crept towards the cockpit, Sainz was eventually able to jump out as the virtual safety car was activated, giving Leclerc a 5.4s lead over Verstappen.
At the end of lap 58, Leclerc took advantage of the slower conditions to pit for mediums, and he was followed to the finish line by Verstappen.
Leclerc then complained about a throttle issue, the pedal not retracting completely, making the run through Turn 3 especially difficult as the margin at the front shrank.
A 4.1s lead after the VSC began to dwindle, but Leclerc held on to win his first race since the Australian GP by 1.5s over Verstappen, chipping away six points.