The Nerazzurri got off to the perfect start when Nicolo Barella found the back of the net with a stunning strike from the edge of the box after just four minutes.
Juventus had been struggling in recent weeks, particularly January signing Dusan Vlahovic who had hit a bit of a dry spell in recent weeks.
The Old Lady only came alive in the final 20 minutes of the first half, with Vlahovic and Paulo Dybala getting efforts in goal although Samir Handanovic was equal to the task.
Juventus coach Massimiliano Allegri was forced to re-shuffle the Juventus side before the halftime break, as Alvaro Morata replaced full-back Danilo, who was struggling with injury.
The change paid off shortly after the second half as Juventus looked more menacing, with Alex Sandro's shot taking a deflection off Morata before sailing past Handanovic to level matters.
Juventus then took the lead two minutes later through Vlahovic, who made his way into the box and while he was initially denied by Handanovic, he was able to profit on the rebound.
Juventus seemed destined to get their hands of some silverware to salvage a disappointing campaign, but Inter found an equaliser on 80 minutes when Hakan Çalhanoglu converted a penalty after Lautaro Martinez was brought down in the box.
That goal ultimately took the game to extra-time, where Inter earned themselves another spot-kick in the 99th minute although Ivan Perisic took responsibility and dispatched the penalty.
Perisic wrapped up the contest four minutes later with an impressive strike of his own from outside the area to hand Inter their first Italian Cup since 2011.