Rishi Dhawan proved to be very expensive on his T20I debut.
Opener Hamilton Masakadza made a brisk start but perished while attempting a scoop.
But Elton Chigumbura's 25-ball half-century took Zimbabwe to a commanding 170.
Chibhabha revived Zimbabwe's innings but his dismissal triggered a minor collapse.
An Indian supporter holds a banner during the game.
India made a shaky start in chase of 171 and were at one stage reduced to 90 for 4.
Manish Pandey (48) kept India in the hunt before Neville Madziva bowled a brilliant last over against MS Dhoni to defend seven runs and seal a two-run win for the hosts.