Mercedes driver Lewis Hamilton dominated the Chinese Grand Prix to take his first win of the year and move into a share of the championship lead.
Hamilton's victory, in a race enlivened by a wet start and some terrific wheel-to-wheel battles, ties him with first-race winner Ferrari's Sebastian Vettel.
Vettel was second, hardening impressions that 2017 will be a fight between the two multiple champions.
Red Bull's Max Verstappen moved up from 16th on the grid to finish third.
Antonio Giovinazzi made it two crashes in two days after losing control of his Sauber on the start-finish straight
The grand prix could have swung in favour of either Hamilton or Vettel depending on how events had played out.
In the end, fate decided for Hamilton, who was able to control the race from the front throughout and respond to his pursuers, who were always kept well out of arm's length.
Vettel had to fight back after losing out on strategy in a chaotic opening, which kept the shape of the race in doubt through a series of incidents and accidents.
Verstappen further heightened his already burgeoning reputation as one of F1's most exciting drivers with a strong performance to challenge Hamilton early on.
The Dutchman, up from 16th to seventh on the first lap, took the final podium spot, but was under pressure in the closing laps from his more measured team-mate Daniel Ricciardo, who Verstappen had overtaken impressively in the early stages.
Hamilton is now level for podium places with the great Alain Prost (106). Source: Forix
Hamilton's team-mate Valtteri Bottas had a chastening day, spinning behind the safety car in the early stages and dropping back to 12th, from which he recovered to finish sixth, behind the second Ferrari of Kimi Raikkonen.
And there was cruel luck for Fernando Alonso, who drove a strong opening lap to have the uncompetitive McLaren-Honda up into eighth place, ran seventh for much of the race and was on course to finish there when his driveshaft failed shortly after half distance.
The race could have turned out very differently had it not been for a key moment on lap four.
After a wet start, Hamilton led the opening lap from Vettel and Bottas but the deployment of the virtual safety car following a crash by Williams rookie Lance Stroll, punted off by Force India's Sergio Perez, prompted Vettel and most of the midfield runners to pit for dry tyres on lap two.
The decision dropped Vettel to sixth but with all the runners ahead of him still on the grooved intermediate tyres on a rapidly drying track.
The four-time champion was now in a strong position, and poised to take the lead when Hamilton, Bottas, Ricciardo, Raikkonen and Verstappen pitted.
But Hamilton and the others were saved by a crash by Sauber's Antonio Giovinazzi, the Italian losing it at the last corner, just as he had in qualifying on Saturday.
That brought out the safety car and Hamilton and the rest could make their own pit stops for dry tyres without losing out.
From there, Hamilton could control the race at will and was pretty much untroubled, despite a late push from Vettel.
The Lewis Hamilton fan club: Shanghai division
...which includes home made flags
As the safety car helped Hamilton, it hurt Vettel, who now had to battle past both Red Bulls and team-mate Raikkonen to retain the championship lead.
Ricciardo began to struggle and he soon had a queue behind him, with Verstappen heading Raikkonen and Vettel.
Verstappen, predictably, was the man on the move, passing his team-mate on lap 11 at the Turn Five hairpin and chasing after Hamilton.
Raikkonen spent another nine laps failing to pass Ricciardo before the Finn was overtaken by team-mate Vettel at Turn Five.
Two laps later, Vettel put perhaps the move of the race on Ricciardo, going all the way around the outside of Turn Five, the two banging wheels in a puff of blue smoke as they accelerated side-by-side towards the fast Turn Six, where the Ferrari finally claimed the place.
Vettel chased down Verstappen, who he provoked into a mistake at the Turn 14 hairpin at the end of the long straight on lap 28, exactly half distance.
A pit stop for fresh tyres from Ferrari forced Mercedes to respond but, with the two cars evenly matched, there was stalemate.
There were a number of great performances - Hamilton was sublime in the lead, Vettel excellent in attack-recovery mode, Alonso dragging his recalcitrant McLaren into the points, Carlos Sainz impressive in the Toro Rosso.
But it's hard to look beyond Verstappen - 16th to seventh on the opening lap, the usual plethora of great passes, embarrassing Ricciardo in the early laps, and holding on for a podium in a car with difficult balance because of lack of track time in qualifying.
Red Bull's Max Verstappen started 16th but soon worked his way through the field during a wet start
"I think this will be one of the closest [title fights] if not the closest I have experienced," said Hamilton.
"Ferrari have done a great job and it is great that we are both pushing."
Sebastian Vettel: "The safety car came just as I was about to start to feel the dry tyres were a lot quicker but then I had a very exciting race. I was stuck in the train for a little while but then tried to chase down Lewis Hamilton. It was a good match. It was good fun."
Max Verstappen: "It was a very challenging race but I really enjoyed it. I think I overtook nine cars in the opening lap so it was a very good race for me!
"I didn't have a lot of track time this weekend because didn't do much in qualifying so I wasn't expecting to finish on the podium having started in 16th."
Chapter three of their promising battle takes place under the lights of Bahrain next weekend, where temperatures will be a good 20C higher than on a chilly 12C day in Shanghai.
Both Hamilton and Vettel share two victories each in the desert race.