Verstappen - the reigning world champion - hit technical trouble in the closing moments to promote Carlos Sainz to second as Ferrari completed a famous one-two finish.
Hamilton was elevated to third after Verstappen's team-mate Sergio Perez spun out with an engine failure on the penultimate lap to complete a dramatic and miserable evening for Red Bull. George Russell finished fourth.
Ninety-eight days after last season's controversial finale in Abu Dhabi - where Hamilton was denied an eighth world championship - Formula One fired up for a new campaign in Bahrain.
Hamilton was forced to play a supporting role with Mercedes struggling to get on top of the sport's biggest technical overhaul of a generation.
Taking his place at the front of the field was Leclerc, the 24-year-old Monegasque who Ferrari hope can end a drivers' championship drought which stretches back to 2007.
Leclerc blasted away from his marks to keep Verstappen at bay into the opening corner, with Hamilton moving up one spot from fifth as he passed Perez through the second corner. Hamilton was then on to the back of Sainz's Ferrari before the true pace of his Mercedes machine was exposed.
Hamilton fell off Sainz's Ferrari gearbox and into the clutches off Perez, with the Red Bull driver assuming fourth on lap 10.
Hamilton pulled in for fresh rubber two laps later, taking on the hardest tyres. The majority of the field switch from soft to mediums.
When Hamilton left the pit lane, he was unable to control the Mercedes car as the Brit tried to get heat into his rubber.
He temporarily fell behind Chinese rookie Zhou Guanyu before getting back past on the ensuing lap. By then, he was already 53 seconds behind the leaders.
Up front, Leclerc and Verstappen were embroiled in a battle royale. On lap 17, amid a flurry of orange sparks, Verstappen jinked to Leclerc's right and took the lead at the opening corner, only for Leclerc to fight his way back at Turn 4.
On the next lap, Verstappen tried his luck again, and made the move stick at the first bend, but, just as he did 90 seconds or so earlier, Leclerc was back in the lead at the fourth turn.
Verstappen geared up for a third attempt at the start of the next lap, but he went in too hot on his brakes, overcooked it, and his best chance to win appeared to be over.
But Verstappen was handed another opportunity with just 11 laps remaining when Pierre Gasly's AlphaTauri caught alight. Gasly emerged safely from his fiery machine, but with his car parked in a precarious position, the safety car was deployed.
The safety car pulled in with eight laps remaining, but Verstappen was forced to hold off Sainz, rather than attack Leclerc, and then suddenly the Dutchman hit trouble, falling down the field before pulling into the pits - his evening over.
Leclerc took the flag 5.5 seconds clear of Sainz with Hamilton four seconds further back following Perez's late failure.
Kevin Magnussen, recalled by Haas following Nikita Mazepin's axing, finished an impressive fifth with Valtteri Bottas sixth on his Alfa Romeo debut.
On a deeply concerning evening for McLaren, Daniel Ricciardo and British team-mate Lando Norris finished 14th and 15th of the 17 classified runners.