In 2012, Pirro moved up into MotoGP to race in the CRT category and, thanks to good results, he joined Ducati in 2013 as test-rider for the development of the new GP13. He took part in three races as a wild-card while in another seven he stood in for the injured Ben Spies within the Pramac Racing Team. The following year he continued his testing activity with numerous tests on the Ducati MotoGP bike, while he also took part in the final round of the World Superbike Championship as replacement for Carlos Checa on the Ducati 1199.
In 2014, Pirro continued his vital development work and was called in to replace the injured Cal Crutchlow in the factory team at the Argentina GP. He took part in five more races as a wild-card, scoring 18 points and ending the year nineteenth overall. The 2015 season saw him again with Ducati, with three races in MotoGP as a wild-card, and two in World Superbike in place of Davide Giugliano on the Panigale R. He scored points in almost all of the races he took part in, finishing 21st in both championships. In addition, Michele took part in CIV on a Barni Racing Panigale R, dominating the Superbike category and winning the championship hands down.
The 2016 season saw him take part in nine GPs: two as a wild-card on the factory bike and two in place of Iannone within the Ducati Team. He replaced Danilo Petrucci in three races with the Pramac Racing Team, and Loris Baz two more with Avintia Ducati, picking up 36 points in the World Championship and finishing 19th overall. In 2017 he took part in three races as a wild-card on the third factory bike, scoring 25 points. He also repeated his success in CIV Superbike, taking his Panigale R to victory in 11 out of 12 races. In 2018, despite a brief break from racing due to a nasty crash at Mugello, Pirro took part in three MotoGP races, saving his best result for last with a brilliant 4th place finish at Valencia. With eight wins, he also claimed his third CIV Superbike title.