Dani Pedrosa claimed his third win of the season with victory at the rescheduled Japanese MotoGP.
Pedrosa took advantage of a slip from championship leader Casey Stoner to come home first ahead of Jorge Lorenzo.
Stoner recovered from going off the track to take third as his lead over Lorenzo at the top of the standings was cut to 40 points.
Andrea Dovizioso and Marco Simoncelli shook off ride-through penalties to finish fourth and fifth respectively.
Aspar Ducati rider Hector Barbera was one of several riders to crash out and he suffered a broken collarbone.
The Motegi circuit is situated less than 100 miles from the site of the Fukushima nuclear plant, which suffered nuclear leaks in the wake of the devastating magnitude 9.0 quake and subsequent tsunami.
The race was moved from its original date in April and was only given the go-ahead after an independent investigation showed there was no risk of radiation.
All riders eventually agreed to race in what proved to be a thriller on a circuit which had 70% of the surface resurfaced following damage in the earthquake.
Stoner said of his detour across the gravel: "It wasn't a mistake from me. I hit a big bump and lost my hands on the handlebars. When I went for the brakes there was nothing there so I am lucky not to crash.
"I am not happy at all, I had a good chance to win and my lead should have been bigger. These things don't happen very often and I'm very disappointed."
Starting from his 10th pole position of the season, Stoner made a clean start to lead through turn one before Valentino Rossi and Ben Spies crashed out at the third corner.
Rossi found himself sandwiched between Lorenzo and Spies and with nowhere to go ditched his Ducati into the gravel trap.
Spies was able to pick up his Yamaha and continue with the race but Rossi was out - his first retirement of the season.
Stoner soon opened up a comfortable lead over team-mates Dovizioso and Pedrosa at Honda's home track before Cal Crutchlow made a mistake and took to the grass before rejoining the race.
Crutchlow, Dovizioso and Simoncelli were then all hit with ride-through penalties for jumping the start before Stoner made a very rare excursion off the circuit.
After missing his braking point Stoner was forced to go straight on and eventually rejoined the race in seventh place.
Dovizioso's lead was short lived as he was forced to come in for his penalty on lap six and when Simoncelli also took to the pits Stoner was elevated to fifth, with Pedrosa leading from Lorenzo.
Stoner still had two thirds of the race left to get back onto the podium and forced his way past Nicky Hayden on lap 10 to move into fourth spot.
The Australian soon passed Alvaro Bautista to take third place at the halfway stage and set off in pursuit of Lorenzo.
Bautista then lost control of his Suzuki coming out of the tunnel and crashed at the left of turn 12 to enable Dovizioso to inherit fourth place.
Simoncelli finished strongly and pressured Dovizioso before making an aggressive pass with two laps left to climb into fourth spot.
Stoner can now win his second world title at his home race in Australia in a fortnight's time but needs to claim 10 more points than Lorenzo.
Japanese MotoGP race results:
1) Dani Pedrosa (Spa) Repsol Honda 42'47.481
2) Jorge Lorenzo (Spa) Yamaha 42'54.780
3) Casey Stoner (Aus) Repsol Honda 43'05.861
4) Marco Simoncelli (Ita) Gresini Honda 43'11.031
5) Andrea Dovizioso (Ita) Repsol Honda 43'11.172
6) Ben Spies (USA) Yamaha 43'25.085
7) Nicky Hayden (USA) Ducati 43'26.648
8) Colin Edwards (USA) Tech 3 Yamaha 43'32.504
9) Hiroshi Aoyama (Jpn) Gresini Honda 43'36.555
10) Randy De Puniet (Fra) Pramac Ducati 43'46.503
Moto2 race results:
1) Andrea Iannone (Ita) Suter 43'25.007
2) Marc Marquez (Spa) Suter 43'27.006
3) Thomas Luthi (Swi) Suter 43'28.693
Moto2 championship standings:
1) Marc Marquez (Spa) Suter 235 points
2) Stefan Bradl (Ger) Kalex 234
3) Andrea Iannone (Ita) Suter 157
125cc race results:
1) Johann Zarco (Fra) Derbi 39'49.968
2) Nicolas Terol (Spa) Aprilia 39'55.868
3) Hector Faubel (Spa) Aprilia 40'03.573
125cc championship standings:
1) Nicolas Terol (Spa) Aprilia 261 points
2) Johann Zarco (Fra) Derbi 230
3) Maverick Vinales (Spa) Aprilia 190