A penalty try and a score from replacement scrum-half Alessandro Fusco helped Gli Azzurri come back from 11 points down against the Lelos - the biggest comeback in their history.
Georgia had led 17-6 at half-time thanks to tries from Akaki Tabutsadze and Vasil Lobzhanidze but Italy slowly worked their way back into the match before Fusco’s score put them back in front just after the hour.
From there, they were able to see it out to set themselves up nicely for a clash with the All Blacks next weekend.
Italy made a blistering start, working their way up to the Georgian line only for Niniashvili to make his first crucial intervention of the afternoon – racing up to intercept Alessandro Garbisi’s wide pass.
Gli Azzurri lost their skipper Michele Lamaro to injury in the same passage of play, Manuel Zuliani coming on to replace him.
The home side enjoyed much of the territory but were struggling to convert their chances, with Dino Lamb held up over the line by Luka Matkava.
Italy finally hit the front with a Paolo Garbisi penalty following a Georgian offside, but that seemed to spark the visitors into life.
With almost their first attacking opportunity, Georgia got over through their record try-scorer Tabutsadze. It came after lovely interplay from Lobzhanidze and Ilia Spanderashvili before Matkava put in his winger for his 40th Test try.
Matt Gallagher missed a long-range chance to cut the gap, but Garbisi made no mistake soon after to make it 7-6.
That was immediately cancelled out by Matkava before a glorious second Georgian try. Collecting the ball in his own half, Niniashvili ghosted past three defenders before feeding Lobzhanidze for the simple finish. Matkava’s conversion made it 17-6.
Italy had one final chance at the end of the half, but Niniashvili popped up again to tackle Gallagher and then rip the ball when the full-back had found some space wide on the right.
Trailing by 11 points at the break, Italy started the second half with plenty of intent, but they struggled to break down the Georgian defence.
They were able to put pressure on the visitors, winning lots of penalties. Finally that led to points, with Tabutsadze sent to the sin-bin and conceding a penalty try when he was pinged for an intentional knock-on as Monty Ioane looked set to go over in the corner.
Georgia defended stoutly while down a man but Fusco got over right at the end of the sin-bin period, bursting through off a well-worked lineout move. Garbisi converted and suddenly Italy were in the lead, 20-17 with quarter of an hour remaining.
The second period had been played almost exclusively in Georgian territory and even two late lineouts around halfway went astray to deny the visitors a final chance to pull off the win.