Moto GP Spanish rider Jorge Lorenzo steers his Yamaha (R) to cross the finish line ahead of Spain's Marc Marquez on his Honda during the Moto Grand Prix at the racetrack in Mugello on May 22, 2016. / AFP / GIUSEPPE CACACE (Photo credit should read GIUSEPPE CACACE/AFP/Getty Images)

Spaniard Jorge Lorenzo has won an exhilarating Italian Grand Prix, after a gripping final lap battle with compatriot Marc Marquez.

Lorenzo overtook Marquez twice on the last lap, passing the reigning world champion down the final straight to claim a remarkable victory.

Amazingly, after 23 laps of racing, there was less than bike's length between the pair as they crossed the finish line.

The win is Lorenzo's second of the year and gives him a five point lead over Marquez in the championship standings.

Italian Andrea Iannone finished third, while Australian Jack Miller failed to finish, crashing out in the opening lap of the race.