Defending champion Marc Marquez won the German MotoGP with a dominant race ahead of Dani Pedrosa.
It was the Spaniard's first victory since the second race of the season, at Austin in April - but his sixth in six years at the Sachsenring circuit.
Championship leader Valentino Rossi was third but extended his overall lead over Yamaha team-mate Jorge Lorenzo.
Rossi - chasing his first title since 2009 - now leads Lorenzo by 13 points at the halfway stage of the season.
|MotoGP standings after the German Grand Prix|
|179 points||Valentino Rossi (Ita) Yamaha|
|166||Jorge Lorenzo (Spn) Yamaha|
|118||Andrea Iannone (Ita) Ducati|
|114||Marc Marquez (Spn) Repsol Honda|
Marquez was utterly dominant in the 2014 season, winning 13 of 18 races, but has been off the pace in 2015.
His second win of the season leaves him fourth in the standings, 65 points behind Rossi.
Lorenzo - winner of four races this season - made a fine start but Marquez soon sliced past to take the lead.
Marquez then moved clear as Rossi fought out a duel with his team-mate Lorenzo, while Marquez's Repsol Honda team-mate Pedrosa - back on form after missing three races at the start of the season with an arm problem - moved his way past both Yamahas to take second, his best result of the year.
British riders Bradley Smith and Cal Crutchlow finished sixth and seventh respectively.
In the Moto3 class British rider Danny Kent won for the fifth time this season to extend his lead to 76 points and enhance his chances of becoming the first Briton to win a world championship in any class since Barry Sheene in 1977.
In the Moto2, Belgian Xavier Simeon won his first race of the season while Johann Zarco stayed clear at the top of the standings with a second place. British hope Sam Lowes - third in the overall standings - finished fifth.
German Grand Prix results:
1. Marc Marquez (Spain) Honda 41:01.087
2. Dani Pedrosa (Spain) Honda 41:03.313
3. Valentino Rossi (Italy) Yamaha 41:06.695
4. Jorge Lorenzo (Spain) Yamaha 41:11.015
5. Andrea Iannone (Italy) Ducati 41:21.872
6. Bradley Smith (Britain) Yamaha 41:24.302
7. Cal Crutchlow (Britain) Honda 41:30.968
8. Pol Espargaro (Spain) Yamaha 41:36.040
9. Danilo Petrucci (Italy) Ducati 41:36.962
10. Aleix Espargaro (Spain) Suzuki 41:38.340
11. Maverick Vinales (Spain) Suzuki 41:38.361
12. Yonny Hernandez (Colombia) Ducati 41:43.168
13. Hector Barbera (Spain) Ducati 41:49.698
14. Alvaro Bautista (Spain) Aprilia 41:51.774
15. Jack Miller (Australia) Honda 41:54.856
MotoGP standings after race nine of 18:
1. Valentino Rossi (Italy) Yamaha 179
2. Jorge Lorenzo (Spain) Yamaha 166
3. Andrea Iannone (Italy) Ducati 118
4. Marc Marquez (Spain) Honda 114
5. Andrea Dovizioso (Italy) Ducati 87
6. Bradley Smith (Britain) Yamaha 87
7. Dani Pedrosa (Spain) Honda 67
8. Cal Crutchlow (Britain) Honda 66
9. Pol Espargaro (Spain) Yamaha 64
10. Maverick Vinales (Spain) Suzuki 57
11. Danilo Petrucci (Italy) Ducati 51
12. Aleix Espargaro (Spain) Suzuki 44
13. Yonny Hernandez (Colombia) Ducati 32
14. Scott Redding (Britain) Honda 30
15. Hector Barbera (Spain) Ducati 19