Opener Chamu Chibhabha, leg-spinner Graeme Cremer and the Zimbabwe team scripted a win to treasure, beating India by 10 runs in the second and final T20 international, at Harare Sports Club on Sunday.
Zimbabwe dashed India's hopes of a clean sweep by restricting the vistors to 135/9 after posting 145/7.
Chasing 146 for a win, India were looking down the barrel at 69 for five in nine overs.
Stuart Binny (24) and debutant Sanju Samson (19) played cameos, but the visitors fell short.
India, who had won the ODI series 3-0, shared the T20 series 1-1 with the hosts.
Cremer snapped up three wickets for 18 runs in his four overs, while Sean Williams (1/31), Taurai Muzarabani (1/23) and Chris Mpofu (1/26) took one each.
Earlier, Indian bowlers produced a disciplined performance to restrict Zimbabwe to 145. Chibhabha's fourth T20I half-century (67 off 51 balls) formed the backbone of the Zimbabwe total.
India suffered an early blow, losing skipper Ajinkya Rahane only in the third ball. He was run out after a mix-up with Murali Vijay.
Vijay (13) and Robin Uthappa (40) then added 53 runs in 34 balls before the former was sent packing by Cremer, who rattled his off-stump in the seventh over.
Three balls later, Cremer struck again when he trapped Manish Pandey in front of the wicket with a googly that pitched on middle and leg and skidded on to beat the batsman, leaving India at 57-3.
In the next over, Williams dismissed Uthappa, who was looking good till then. The batsman popped a return catch to Williams.
Jadhav too was run out when Muzarabani produced a direct hit as India lost half their side in nine overs.
Binny and Samson raised hopes with a 36-run partnership, but the former was sent back into the hut by a stunning catch from Chibhabha, as Cremer picked up his third wicket.
In the 18th over, Samson holed out at long-on, with Malcolm Waller taking the catch off Chris Mpofu, and India slipped to 117-7.
Axar Patel (13) and Bhuvneshwar Kumar (9), too, perished as India ended their campaign with a loss.
Earlier, the Indians took wickets at regular intervals to deny momentum to the home side. Stand-in skipper Sikandar Raza won the toss and chose to bat.