Reigning 125cc world champion Marc Marquez beat home favourite Stefan Bradl to victory in Sunday's German Moto2 Grand Prix at Sachsenring.
Marquez and Bradl maintained their one-two grid positions at the start of the race, with Alex de Angelis pressing Bradl for second during the early stages.
The trio were later caught by Thomas Luthi, with Marquez losing the lead to Bradl after running wide at turn one just before the halfway point of the 29 laps.
Title leader Bradl, riding the locally-built Kalex chassis, continued to hold off the warring trio behind him until Marquez outbraked him into the final turn with eight laps to go.
The pair then broke away, with Repsol Suter star Marquez absorbing, then responding, to the pressure from Bradl to win his third race in a row by 0.896sec.
Both Marquez and Bradl have now won four races this season, although the Spanish rookie is 47 points from the title leader. Andrea Iannone is the only other 2011 race winner.
Bradl's team-mate Randy Krummenacher produced an impressive late charge to catch the Luthi/de Angelis battle, creating a three-way fight for third.
de Angelis was able to break clear, while Krummenacher passed Luthi for fourth on the penultimate lap.
Scott Redding, who began the race just 23rd on the grid, steered his Marc VDS Suter all the way up to seventh at the flag.
Aspar's Julian Simon, making his return from a broken leg and starting fifth on the grid, fell at turn one, fortunately without further harm.
Bradley Smith, on the podium for the previous three rounds, was one of several riders to run-on at turn one, the Tech 3 rider rejoined but later fell from 17th.
Front row starter Aleix Espargaro suffered a big highside in the early stages, with following German Max Neukirchner caught up in the accident.
With Moto2 not racing at Laguna Seca next weekend, round ten will be held after the summer break, at Brno in mid-August.
1. Marquez (Suter) 29 laps
2. Bradl (Kalex) +0.896s
3. de Angelis (MotoBI) +1.387s
4. Krummenacher (Kalex) +3.413s
5. Luthi (Suter) +4.185s
6. Y. Hernandez (FTR) +7.691s
7. Redding (Suter) +10.606s
8. Corsi (FTR) +10.667s
9. Cluzel (Suter) +12.079s
10. Pirro (Moriwaki) +12.337s
Smith (Tech 3) DNF