Defending champion Casey Stoner crashed out on the last lap of the German MotoGP as team-mate Dani Pedrosa took his first win of the season.
Stoner was pushing to pass his fellow Repsol Honda rider when he slid off with just a few corners left.
Jorge Lorenzo was gifted second place as a result and he now leads Pedrosa by 14 points in the standings, with Stoner dropping to third place.
British rider Cal Crutchlow was eighth after he ran off the track late on.
Crutchlow was attacking his Tech 3 Yamaha team-mate Andrea Dovizioso for fourth place when he ran straight on at turn one and was forced to take to the gravel.
He rejoined the field in 11th spot but battled back to take eighth - his joint-worst finish of the season - as Dovizioso took third spot as a result of Stoner's late crash.
Stoner was within sight of moving four points clear in the standings when he lost the front end of his bike and slid out to gift Lorenzo the initiative.
Stoner said: I'm pretty disappointed, I had planned to go for my 'win or bin' effort in the last corner not that one!
"I felt confident but as soon as I tried to turn in a little more, the front went. I was already off the brakes and not in the hard braking area, as soon as I eased of the brakes I guess the weight came off the front and down I went.
"I'm frustrated I wasn't allowed to get up and try and score some points, the bike was perfect, but the marshals pushed me away.
"If we can continue this momentum for the rest of the season then we shouldn't be so worried for the championship."
It completes a dramatic seven days for Yamaha rider Lorenzo - who and scored no points.
and has made it a three-way battle for the MotoGP title.
Lorenzo told BBC Sport: "Things can change completely in two races.
"At Assen we have zero points and were very disappointed but then we have luck from Casey's crash today. I would have been happy to finish third as the bike was not so good but we were lucky."
Ben Spies was fourth, with German rider Stefan Bradl fifth at his home circuit and Valentino Rossi sixth.
Alvaro Bautista - who had to start from the back of the grid as a punishment for crashing into Lorenzo at Assen - managed to come home seventh.
In the earlier Moto2 race, Marc Marquez won from Mika Kallio with Alex De Angelis in third.
Marquez - who is expected to take Stoner's spot at Honda next year - now leads the standings by 43 points from Pol Espargaro.
The start of the Moto3 race was delayed after torrential rain hit the circuit after the MotoGP race had finished, but Sandro Cortese sent the German fans home happy with a win from Alexis Masbou and Luis Salom.
German Grand Prix results:
1. Dani Pedrosa (Spn) Repsol Honda 41:28.396
2. Jorge Lorenzo (Spn) Yamaha 41:43.392
3. Andrea Dovizioso (Ita) Tech 3 Yamaha 41:49.065
4. Ben Spies (USA) Yamaha 41:49.136
5. Stefan Bradl (Ger) LCR Honda 41:56.289
6. Valentino Rossi (Ita) Ducati 41:56.446
7. Alvaro Bautista (Spn) Gresini Honda 41:56.642
8. Cal Crutchlow (GB) Tech 3 Yamaha 41:56.843
9. Hector Barbera (Spn) Pramac Ducati 41:57.449
10. Nicky Hayden (USA) Ducati 41:57.622