Six-time world champion Hamilton came fourth in the season-opening Austrian Grand Prix last weekend but converted his stunning qualifying performance – he took pole by over a second in wet conditions – into a first victory at the Red Bull Ring since 2016.
Valtteri Bottas, the winner of this year's first race, got past Red Bull's Max Verstappen with five laps remaining to take second and stay ahead of his Mercedes team-mate in the drivers' standings.
Ferrari fast-tracked updates for this weekend after a sub-par showing last week and had to retire both cars inside five laps after Leclerc crashed into team-mate Vettel.
Leclerc bounced up off the kerb as he attempted to sneak down the inside of Vettel at turn three on the opening lap, with his left rear wheel damaging his team-mate's rear wing beyond repair.
The safety car was called out as a result and although the Monegasque received a new front wing he was soon forced to retire as well.
Mercedes encountered issues when driving over the kerbs last time out but were told they could push, and Verstappen had little in the way of a response.
The Red Bull driver was first to pit in a bid to fend off an undercut and Hamilton soon followed, while Bottas stayed out on the soft compound the longest of the leading trio.
That strategy enabled Bottas to use his fresher medium tyres to close down Verstappen in the second half of the race, and he reduced the eight-second gap to get in DRS range on lap 65.
With Verstappen struggling with front wing damage Bottas was able to move up to second on lap 67, while Hamilton was denied the fastest lap by Carlos Sainz after the Spaniard pitted for fresh tyres on his McLaren.
LECLERC TAKES THE BLAME
Ferrari fast-tracked updates for the Styrian Grand Prix after a disappointing start to the season, even though Leclerc somehow managed to finish second last weekend.
He apologised to Vettel following their collision and acknowledged he had "put all of the effort of the team in the bin".
Leclerc told Sky Sports: "Excuses are not enough in times like this. I am just disappointed in myself. I've done a very bad job today. I let the team down. I can only be sorry even though it's not enough.
"I hope I'll learn from this and come back stronger for the next races. I put all the effort of the team in the bin, so I'm very sorry. I was [too optimistic with the overtake attempt]."
Esteban Ocon had a strained relationship with Sergio Perez while racing for Force India and it has not taken long for him to show he remains no walkover.
The Frenchman was unwilling to give up his position despite Daniel Ricciardo telling the team he had the better pace.
The pair's squabbling cost them both valuable time but Ricciardo eventually got past and Ocon had to retire on lap 27 with a suspected cooling issue.
Although every driver wore t-shirts bearing the message "end racism" for a second successive week, they did not present a united front when it came to taking a knee.
Alongside Hamilton, whose top also said "Black Lives Matter", 11 of the 15 others that gathered at the front of the grid prior to the Austrian national anthem decided to kneel.
A number of drivers have explained the reasons for remaining standing and the discussion will likely continue beyond the Styrian Grand Prix.
NORRIS LEAVES IT LATE
By producing the fastest lap of the race on the final lap last weekend, McLaren driver Lando Norris earned a maiden podium.
He got past Ricciardo on the penultimate lap before passing Racing Point duo Lance Stroll and Perez to take fifth behind Alex Albon this time out.