Second-half substitute Giampaolo Pazzini struck five minutes from time to hand the Azzurri all three points in Florence.
The victory leaves Italy unbeaten in Group C and eight points clear of nearest rivals Serbia, who beat the Faroe Islands on Tuesday.
The Italians have now won seven of their eight qualifying matches and clinched their place in next year's finals with two matches to spare.
Italy coach Cesare Prandelli started with Giuseppe Rossi alongside Antonio Cassano in attack.
The Azzurri had their first chance in the opening minute with Daniele De Rossi passed to Rossi, who surged in to the area and struck a shot that was on target but Slovenia goalkeeper Jasmin Handanovic was able to parry and keep the deadlock intact.
Shortly after, Italy nearly took the lead when Riccardo Montolivo's powerful header from Federico Balzaretti's cross went just wide of the far post.
The visitors had their first chance in the 20th minute with Dare Vrsic's bullet strike from 30 yards but Italy goalkeeper Gianluigi Buffon punched it away.
Italy pushed forward and almost made the breakthrough in the 33rd minute when De Rossi got past his marker and put his head to Balzaretti's cross.
The header went over the bar, though, to leave the Italians frustrated.
Before half-time, Buffon was forced into a full-length stretch to save Robert Koren's strike from just outside the area that was headed towards the far post.
Italy dominated possession after the re-start but struggled to turn that into goals.
On the hour mark, Prandelli brought on Pazzini in place of Cassano.
Soon after, Rossi's volley went over the bar as Italy looked for the winner.
With 15 minutes remaining and Italy yet to score, Prandelli opted to bring another striker in with Manchester City's Mario Balotelli replacing Montolivo.
Prandelli's team kept Slovenia under pressure as they sought a late clincher.
Pazzini wasted a good chance with his header from Balzaretti's cross going wide but Italy were finally rewarded in the 85th minute.
Slovenia failed to clear the ball inside the area and Pazzini struck a right-footed shot from six yards past Handanovic.
Balotelli almost made it 2-0 deep in stoppage time but his effort from 30 yards went just wide of the far post.
With the setback, the Slovenians fell to fourth place - three points adrift of second-place Serbia.