Chasing a target of 160, Afghanistan were bundled out for 136 runs with three balls to spare.
Left-arm spinner Yuvraj Singh (3/24), who is making a comeback after recovering from cancer, and Lakshmipathy Balaji (3/19) stifled the Afghanistan batting with their disciplined bowling.
But the star of the day was Virat Kohli, who struck a valuable 50 that helped India to put on 159 for five in 20 overs. Kohli was also adjudged as Man of the Match.
It was an impressive performance by Afghanistan. They restricted India to a modest total but some dropped chances and poor fielding did them in.
While chasing, they came close but failed to put on a decent partnership and kept losing wickets at regular intervals. Mohammed Nabi (31), Karim Sadiq (26) and skipper Nawroz Mangal (22) were the notable contributors with the bat.
Opening batsman Mohammed Shahzad (18) gave Afghanistan a quick start but threw away his wicket as he danced down the track to hit out Balaji only to find Yuvraj at mid-on.
Yuvraj then trapped Mangal leg-before in the eighth over and raised hopes of a fairytale comeback as he picked up Sadiq and Stanikzai in successive overs in the 12th over.
But Samiullah Shenwari (1) denied Yuvraj a hat-trick only to depart in the next over. Afghanistan lost their last five wickets for just 60 runs as India finished the match in a clinical way.
Earlier, Kohli (50) and Suresh Raina (38) helped India post 159 for five after Afghanistan opted to field.
Kohli and Raina helped India recover from 68 for three after Shapoor Zadran (2/33) gave Afghanistan a dream start by dismissing Virender Sehwag (8) and Gautam Gambhir (10) inside five overs.
Kohli smashed two sixes and four boundaries in his rapid 39-ball knock. With Yuvraj and Raina, Kohli was involved in two partnerships of 46 runs each.
A late charge by skipper Mahendra Singh Dhoni (18 not out from nine balls) helped India get to a respectable total. Dhoni finished off the innings in style by hitting a six off the last ball.