Honda rider Pedrosa, second in the standings, finished ahead of compatriot Lorenzo, who had started on pole but had to settle for second place.
MotoGP champion Valentino Rossi finished fourth in his first race just six weeks after breaking his leg. The Italian was just edged out by Australian Casey Stoner who took the final podium place.
The race was re-started after a 30-minute delay following a crash involving Spaniards Aleix Espargaro and Alvaro Bautista on lap nine.
Spain's Toni Elias on a Moriwaki won the German Moto2 motorcycling Grand Prix, with Italian duo Andrea Iannone (Speed Up) and Roberto Rolfo (Suter) in second and third.
This was the third win of the season for Elias after victories at Jerez and Le Mans, and it lifted him 42 points clear of his Swiss teammate Thomas Luthi in the overall standings.
Luthi's hopes of making inroads on the chamnpionship leader were dashed when he fell.
Elias started cautiously from the front row alongside pole sitter Iannone, moving in to lie second with ten laps of the Sachsenring circuit near Dresden remaining.
He overtook Iannone on the inside at the end of the straight four laps later to seal the win.
While Elias celebrated Japan's Yuki Takahashi, a winner in Barcelona a fortnight ago, was dusting himself down after parting company with his Tech3 machine on the second lap.
Results from the German Grand Prix:
MotoGP
1. Dani Pedrosa, Spain, Honda, 28 minutes, 50.476 seconds.
2. Jorge Lorenzo, Spain, Yamaha, 28:52.831.
3. Casey Stoner, Australia, Ducati, 28:55.733.
4. Valentino Rossi, Italy, Yamaha, 28:56.099.
5. Andrea Dovizioso, Italy, Honda, 29:07.634.
6. Marco Simoncelli, Italy, Honda, 29:08.233.
7. Nicky Hayden, United States, Ducati, 29:08.411.
8. Ben Spies, United States, Yamaha, 29:11.433.
9. Hector Barbera, Spain, Ducati, 29:12.476.
10. Marco Melandri, Italy, Honda, 29:25.693.
Standings (After 8 of 18 races):
1. Jorge Lorenzo, Spain, Yamaha, 185 points.
2. Dani Pedrosa, Spain, Honda, 138.
3. Andrea Dovizioso, Italy, Honda, 102.
4. Casey Stoner, Australia, Ducati, 83.
5. Nicky Hayden, United States, Ducati, 78.
250cc
1. Toni Elias, Spain, Moriwaki, 41 minutes, 57.745 seconds.
2. Andrea Iannone, Italy, Speed Up, 42:01.042.
3. Roberto Rolfo, Italy, Suter, 42:04.319.
4. Fonsi Nieto, Spain, Moriwaki, 42:04.526.
5. Karel Abraham, Czech Republic, FTR, 42:05.141.
6. Gabor Talmacsi, Hungary, Speed Up, 42:07.300.
7. Damian Cudlin, Australia, Pons Kalex, 42:07.442.
8. Dominique Aegerter, Switzerland, Suter, 42:09.118.
9. Stefan Bradl, Germany, Suter, 42:10.897.
10. Yonny Hernandez, Colombia, BQR-Moto2, 42:11.471.
Standings (After 8 of 18 races):
1. Toni Elias, Spain, Moriwaki, 136 points.
2. Thomas Luthi, Switzerland, Moriwaki, 94.
3. Andrea Iannone, Italy, Speed Up, 90.
4. Julian Simon, Spain, Suker, 77.
4. Shoya Tomizawa, Japan, Suter, 76.
125cc
1. Marc Marquez, Spain, Derbi, 41 minutes, 28.274 seconds.
2. Tomoyoshi Koyama, Japan, Aprilia, 41:45.852.
3. Sandro Cortese, Germany, Derbi, 41:46.537.
4. Esteve Rabat, Spain, Aprilia, 41:47.372.
5. Bradley Smith, Britain, Aprilia, 41:47.987.
6. Johann Zarco, France, Aprilia, 42:13.250.
7. Danny Webb, Britain, Aprilia, 42:21.517.
8. Efren Vazquez, Spain, Derbi, 42:21.576.
9. Sturla Fagerhaug, Norway, Aprilia, 42:21.863.
10. Daniel Kartheininger, Germany, KTM, 42:33.352.
Standings (After 8 of 18 races):
1. Marc Marquez, Spain, Derbi, 157 points.
2. Pol Espargaro, Spain, Derbi, 131.
3. Nicolas Terol, Spain, Aprilia, 118.
4. Bradley Smith, Britain, Aprilia, 105.
5. Tomoyoshi Koyama, Japan, Aprilia, 77.