Britain's Lewis Hamilton took a crucial victory in the Italian Grand Prix after Nico Rosberg made a mistake under pressure from his Mercedes team-mate.
Hamilton, 29, fought back after a poor start from pole position, caused by a glitch in his start procedure, dropped him to fourth early on.
He had just closed to within a second of his sister Mercedes when the German ran wide at the first chicane.
The victory in Monza reduces Hamilton's deficit in the title race to 22 points.
Behind the two Mercedes drivers, Felipe Massa drove steadily to third place as his team-mate Valtteri Bottas recovered in impressive style from a poor start to take fourth on the day that Williams confirmed both will stay on next season.
The win will be a significant psychological boost to Hamilton and a corresponding blow to Rosberg, 29. The German was already under the spotlight after being criticised by his team for causing a collision between the two at the previous race in Belgium.
And he received boos from the gathering crowd below the podium as he gave his post-race interview, as he had two weeks' previously at Spa.
Despite the crowd reaction, and two weeks' of heated conversations between Hamilton and Rosberg, the German said: "Lewis drove a great race and he deserves it today."
The race seemed to be falling into Rosberg's lap as Hamilton's car was slow away from pole position and he was swamped by the field, falling behind his team-mate, McLaren's Kevin Magnussen and Massa.
Hamilton was soon pushing hard to make up lost ground.
He took advantage of Massa, passing Magnussen at the second chicane on lap five to grab third from the Dane at the first Lesmo corner on lap five.
And five laps later Hamilton pulled a superb move on Massa, holding the outside line at the first chicane and grabbing the place into the second, left-handed part.
At that point, Hamilton was 2.2 seconds behind Rosberg and he inched closer as they traded lap times to be 1.3 seconds behind when Rosberg made his only pit stop on lap 24, his position as the lead car giving him priority on pit-stop timing.
Hamilton was 1.8 seconds behind when he rejoined after his own stop a lap later.
He was warned by his engineer that the "race will be at the end - look after your tyres" but chose to ignore the advice, instead making his move when his tyres were in their best condition.
He cut into Rosberg's lead, reducing it from 1.8 seconds on lap 26, to 1.3 a lap later and then 0.7 with a new fastest lap as they crossed the line at the end of lap 28.
A few hundred metres later, Rosberg braked too late into the first chicane and was forced to take to the escape road, Hamilton taking the lead as his team-mate negotiated the bollards before rejoining the track.
It was the second time in the race Rosberg had made the same mistake, the first coming on lap nine.
Hamilton said: "The car felt good and it was the closest I'd been and during the previous stint. I knew when I was behind others on the older tyres, it was very hard to stay with him so I knew the only chance would be at the start so I took it."
Hamilton extended his lead in measured but inexorable fashion over the next few laps to four seconds, where it stabilised until the Englishman locked up a front tyre going into the first chicane with three laps to go.
That cost him half a second but Hamilton had everything under control to take his sixth and arguably most important win of the year.
"It was just that Lewis was quick," added Rosberg. "Coming from behind, I needed to up my pace and as a result went into the mistake. That was very bad, and that lost me the lead.
"But second place is a good result and there are still a lot of races to go."
"Nico Rosberg is putting a brave face on it," BBC F1 co-commentator David Coulthard said, "but that has to hurt."
Behind the top three, Bottas had to thread his way through an epic multi-car fight between the Red Bulls, McLarens and Sergio Perez's Force India that see-sawed throughout the race.
It was eventually won by Red Bull's Daniel Ricciardo, who passed team-mate Sebastien Vettel with a brilliant dummy into the second chicane with six laps to go.
Vettel held on to take sixth ahead of Magnussen, Perez and the second McLaren of Jenson Button.
But Magnussen was demoted to 10th behind Ferrari's Kimi Raikkonen following a five-second penalty for forcing Bottas off the track in a battle at the first chicane.
Raikkonen's two points signified a dismal day for the team at their home race, which saw team-mate Fernando Alonso retire with a hybrid system failure, his first mechanical retirement since 2009.
Alonso had been in the battle with the Red Bulls, McLarens and Perez before he pulled off shortly after half distance at the first chicane.
He acknowledged the cheers of the crowd as he walked back to the pits but the Italian team will be hurting from such a poor performance.
"We have to recover from this," Alonso said.