Pedrosa enjoyed a trouble-free race, leading from the first corner
Dani Pedrosa won the San Marino MotoGP for Honda, beating the Yamahas of fellow Spaniard Jorge Lorenzo and Italian Valentino Rossi.
But the race was overshadowed by the death of Japanese rider Shoya Tomizawa in the preceding Moto2 event.
Tomizawa, who rides for the Suter team, was travelling at full speed when he was hit by the bikes of Alex De Angelis and Scott Redding, a British rider.
The race continued and was eventually won by Spain's Toni Elias.
In the main feature, Pedrosa, 24, started from pole and never relinquished his grip on the race to score his fourth victory of the campaign ahead of overall leader Lorenzo.
Pedrosa's victory keeps the pressure on Lorenzo - who had a 68-point lead going into this race - for the overall title with six races left in the season.
Pedrosa made no mistake at the start and it was Lorenzo instead who briefly lost his place as Casey Stoner passed him on the first corner although the Yamaha rider regained second spot by the end of the first lap.
While Pedrosa opened a four-second lead over Lorenzo with 17 laps to go, there was a terrific ding-dong battle going on behind with Rossi finally getting the better of Stoner on his Ducati, the team that the charismatic Italian will join next season.
Stoner was falling down the field at an alarming rate as he was then passed easily by Italian Andrea Dovizioso.
Loris Capirossi's 200th Grand Prix in the elite class came to a anti-climactic end on only the second corner along with American Nicky Hayden, who exited at the same point last year.
Capirossi stormed away wringing his hands in frustration and pain - as the accident saw his little finger ground down to the bone - having remonstrated at Hayden, who had caused the accident by edging out when there was no room and sending the Italian flying.
Spaniard Marc Marquez won the 125ccrace on a Derbi ahead of compatriots Nicolas Terol (Aprilia) and Efren Vasquez (Derbi).
San Marino Moto GP - full results:
1. Dani Pedrosa (Spain) Honda 44mins 22.059secs
2. Jorge Lorenzo (Spain) Yamaha 44:23.959
3. Valentino Rossi (Italy) Yamaha 44:25.242
4. Andrea Dovizioso (Italy) Honda 44:28.513
5. Casey Stoner (Australia) Ducati 44:40.538
6. Ben Spies (U.S.) Yamaha 44:50.444
7. Colin Edwards (U.S.) Yamaha 44:56.993
8. Alvaro Bautista (Spain) Suzuki 45:00.216
9. Hector Barbera (Spain) Ducati 45:03.002
10. Marco Melandri (Italy) Honda 45:04.436
11. Aleix Espargaro (Spain) Ducati 45:07.965
12. Hiroshi Aoyama (Japan) Honda 45:08.453
13. Randy de Puniet (France) Honda 45:12.540
14. Marco Simoncelli (Italy) Honda 45:45.202
1. Toni Elias (Spa) Moriwaki 43mins 33.996secs
2. Julian Simon (Spa) Suter 43:35.965
3. Thomas Luthi (Swi) Moriwaki 43:45.913
125cc qualifying result:
1. Marc Marquez (Spa) Derbi 39mins 56.117secs
2. Nicolas Terol (Spa) Aprilia 39:58.302
3. Efren Vazquez (Spa) Derbi 40:01.745