With six wins from six in Group J, the Azzurri were expected to dispatch struggling Greece without too many problems in their first match at the Stadio Olimpico since 2015.
It did not entirely pan out that way, with the hosts struggling to break down Greece, but a 2-0 win was good enough, with Jorginho scoring a 63rd-minute penalty and substitute Federico Bernardeschi making sure with 12 minutes left.
Greece have made a poor start to the group with only one win and three defeats from their previous four matches.
They might have taken the lead in the 12th minute, though, when Dimitris Limnios found space on the right hand side of the box and was denied by a strong hand from Gianluigi Donnarumma.
The pressure began to ramp up after the break, though, and Alexandros Paschalakis was called on to make a save for the first time when Immobile headed Danilo D'Ambrosio's cross towards the bottom corner.
Lorenzo Insigne had previously fired a shot just wide, but it was not entirely attack against defence and Efthimios Koulouris had a golden chance to open the scoring on the hour mark after Limnios had been allowed to run into the area and cross but he could not find the target.
Three minutes later Italy made the breakthrough. There was no debating the penalty, with Andreas Bouchalakis sticking out his left arm to block Insigne's shot, and Jorginho converted coolly.
Italy's qualification was secured in the 78th minute when Bernardeschi let fly from 25 yards, with his effort taking a slight deflection and nestling in the bottom corner.
Insigne came close to adding a third, Paschalakis producing another good save, but they did not have to wait long to celebrate a job well done.