Dalla Porta, who started fourth on the grid, was steady for the entirety of the race.
It was an exciting final lap with the season’s two championship contenders, Dalla Porta and Aron Canet battling for first place.
Dalla Porta entered the last leg second behind Canet, who qualified in 22nd position.
The Italian pulled a successful overtake on Canet on one of the final corners.
His teammate, Marcos Ramirez, slid past Canet too.
It was sweet success for the Leopard Racing teammates, who finished first and second, with Canet in third.
Dalla Porta has gained consistent results all season, placing second four times in the last eight rounds.
The Leopard Racing rider has retired from only one race this year at the Catalunya GP in Spain and has finished outside of the top 10, once only, at the American GP.
Dalla Porta enters the summer break as the Moto3 championship leader, just two points in front of Canet.
“Finally we win before the summer break, this is fantastic,” he said post-race.
The youngster, who has come extremely close to the win on various occasions this season, was surprised by the victory as he struggled over the weekend in practice sessions.
“I can’t believe it because from the first session of the weekend I didn’t do my best on the bike,” he conceded.
“But when we are in the group, I can do something more. Finally, we do fantastic!”
Dalla Porta leads the Moto3 championship on 125 points, Canet in second on 123 points and Italian rider Niccolo Antonelli in third, on 87 points.
Almost halfway through the 2019 season, the MotoGP is now on summer break for four weeks.
Catch Round 10 of the season for the Czech GP on Sunday, August 4, at 10:00pm for the MotoGP category.
Moto3 German GP Results
- Lorenzo Dalla Porta (ITA) Honda
- Marcos Ramirez (SPA) Honda
- Aron Canet (SPA) KTM
- Romano Fenati (ITA)Honda
- Raul Fernandez (SPA) KTM
- John McPhee (GBR) Honda
- Ai Ogura (JPN) Honda
- Tatsuki Suzuki (JPN) Honda
- Ayumu Sasaki (JPN) Honda
- Jakub Kornfeil (CZE) KTM
- Sergio Garcia (SPA) Honda
- Niccolò Antonelli (ITA) Honda
- Filip Salac (CZE) KTM
- Can Oncu (TUR) KTM
- Tony Arbolino (ITA) Honda
- Jaume Masia (SPA) KTM
- Kazuki Masaki (JPN) KTM
- Stefano Nepa (ITA) KTM
- Andrea Migno (ITA) KTM
- Makar Yurchenko (KAZ) KTM
- Albert Arenas (SPA) KTM
- Riccardo Rossi (ITA) Honda
- Dirk Geiger (GBR) KTM
- Tom Booth-Amos (GBR) KTM (+1 lap)
DID NOT FINISH
Dennis Foggia (ITA) KTM
Celestino Vietti (ITA) KTM
Kaito Toba (JAP) Honda
Alonso Lopez (SPA) Honda
Vicente Perez (SPA) KTM
Gabriel Rodrigo (ARG) Honda
Darryn Binder (RSA) KTM