Sebastian Vettel has taken the lead of the world championship with victory at the Bahrain Grand Prix after title rival Lewis Hamilton was hit with a costly race penalty.
The Ferrari driver overtook Hamilton off the line, setting the tone for what would be a trouble-filled afternoon for the three-time world champion.
Although Hamilton was twice let through by team-mate Valtteri Bottas, the Mercedes driver was made to pay for unnecessarily holding up Daniel Ricciardo at the first round of pit-stops when he was 'stacked' behind Bottas.
The stewards meted out a five-second penalty after ruling Hamilton had driven 'unnecessarily slowly and erratically'.
Vettel had taken the lead after an early stop and stayed clear of Hamilton through the final stages when the Englishman launched a desperate charge to claw back the Ferrari.
It was Vettel's second victory of the season and leaves the German seven points ahead of Hamilton in the nascent standings.
Latest Drivers and Constructors' standings
"Right from the first lap, I felt the car was there and the Easter hunt was on," said Vettel. "They were hiding some eggs but we found them."
Red Bull's Max Verstappen crashed out due to brake failure, having briefly threatened to join the fight for the front.
Did Hamilton's error lose the race?
Hamilton accepted the blame for his race-wrecking penalty, imposed by the stewards after the Mercedes deliberately held up Ricciardo. Hamilton had sought to slow down the Red Bull in the knowledge that he would have to wait behind Bottas when they both pitted behind the Safety Car.
Ironically, Hamilton then exited the pits behind Ricciardo before spearing past the Red Bull when the race resumed following a crash between Lance Stroll and Carlos Sainz.
"It was my fault," said Hamilton. "We will regather as a team and come back fighting. Losing points for the team is definitely painful."
Hamilton 'deflated' by Bahrain error
But did the penalty cost him victory?
Ultimately, Vettel crossed the line six seconds clear of Hamilton but the Mercedes appeared to hold a strong pace advantage over the Ferrari in the final third of the race.
"We don't know what the outcome would've been if Lewis had been at the front early on," said team boss Toto Wolff. "It's pretty evenly matched. On a single lap we have a tiny advantage and maybe in the race, with managing tyres, Ferrari have that tiny advantage."
After splitting their drivers' tyre strategies, the team then twice instructed Bottas - suffering from a tyre-pressure issue - to let Hamilton through.
"We tried to maintain the order and not interfere as it's an awful call but at a certain stage, you have to decide if you are losing the race or making a call," said Wolff. "We're three races down and we have always maintained that philosophy of [equal drivers]. I know it's a very tough call and I don't want to make it yet."
Bottas described the instruction to yield position to Hamilton as "the worst thing I could hear."
But the Finn added he accepted the calls: "There was the potential for Lewis to challenge Sebastian. It was tough but I didn't have enough pace today."
From bad to worse for McLaren as Alonso loses his cool
While Ferrari and Mercedes appear set for a season-long battle at the front, 2017 continues to go from bad to worse for 20-time world champions McLaren.
A reoccurrence of a MGU-H failure on his Honda engine - the fourth such issue suffered by the team's two cars over the weekend - meant Stoffel Vandoorne was retired from the race even before it had begun, an acute embarrassment at the home grand prix of the team's Bahraini owners.
But the race itself then proved almost as painful with Fernando Alonso, who has yet to finish a grand prix this season, retiring before the chequered flag having repeatedly vented his frustration over team radio.
"I've never raced with less power in my life," raged the Spaniard. Later, Alonso told the team to "do what you want" when asked about his race strategy.
Despite McLaren's decision to release Alonso to compete in next month's Indianapolis 500, few in the paddock believe he will stay with the team beyond this season and rumours surfaced this weekend that the 35-year-old has already had talks with former outfit Renault.
"If we give Fernando a good race car we will keep him, I'm confident of that. I think with a good race car he sticks around," team chief Zak Brown told Sky Sports.
"Everyone in the pitlane who has a seat available would want to speak to him. We're not putting all our eggs in one basket, that would be irresponsible. But he is who we want in the car and we will pick up conversations in the summer when we have a better sense of where we are."
In the short term, however, there appears to be no end to McLaren's misery in sight.
"I'd like to be a bit more optimistic for Russia but I fear it may be more of the same," accepted Brown.
After the impressive Pascal Wehrlein finished 11th on his twice-postponed Sauber debut, McLaren will arrive in Sochi for the Russian GP in two weeks' time rock bottom in the Constructors' Championship - 102 points behind new leaders Ferrari.
Bahrain GP race result
1. Sebastian Vettel, Ferrari,
2. Lewis Hamilton, Mercedes, +6.660
3. Valtteri Bottas, Mercedes, +20.397
4. Kimi Raikkonen, Ferrari, +22.475
5. Daniel Ricciardo, Red Bull, +39.346
6. Felipe Massa, Williams, +54.326
7. Sergio Perez, Force India, +1:02.606
8. Romain Grosjean, Haas, +1:14.865
9. Nico Hulkenberg, Renault, +1:20.188
10. Esteban Ocon, Force India, +1:35.711
11. Pascal Wehrlein, Sauber, +1 Lap
12. Daniil Kvyat, Toro Rosso, +1 Lap
13. Jolyon Palmer, Renault, +1 Lap
DNF: Fernando Alonso, McLaren; Marcus Ericsson, Sauber; Carlos Sainz, Toro Rosso; Lance Stroll, Williams; Max Verstappen, Red Bull; Kevin Magnussen, Haas; Stoffel Vandoorne, McLaren.
Don't miss the F1 Report: Bahrain GP Review on Sky Sports F1 at 8.30pm on Wednesday for the final word on the weekend's action.