With Cristiano Ronaldo starting on the bench, Joaquin Correa had given the visitors an early lead.
However, Adrien Rabiot’s superb effort levelled and Morata then scored his first of the night with a composed finish.
The Spaniard rounded off the scoring with a penalty after Aaron Ramsey was fouled by Sergej Milinkovic-Savic.
Andrea Pirlo’s side sit third in the Italian top flight, a point behind second-placed AC Milan and seven adrift of Inter.
Alvaro Morata has been involved in 15 goals in this Serie A season (seven goals, eight assists).