After skipper Virat Kohli opted to bowl on winning the toss, spinners Ravindra Jadeja, Ravichandan Aswhin and Amit Mishra shared seven wickets between themselves as Afghanistan were shot out for a paltry 159 in 45.2 overs.
The Indians chased down the target in 32.2 overs to clinch a bonus point.
However, it was a case of too little too late following defeats to Sri Lanka and Pakistan, who both will meet in Saturday’s final.
- Gavaskar slams team for not playing Pujara, Pandey
Ajinkya Rahane (56), promoted to open the innings, and Shikhar Dhawan (60) set up India’s chase with a 121-run first-wicket partnership.
The duo dealt mostly in ground strokes, even as Rahane impressed up the order with a composed knock.
The Mumbai youngster, who usually bats at number four, settled in quickly and rotated the strike to take the pressure off Dhawan, who got a reprieve on 28.
But inspired by Rahane, the Delhi batsman soon got into the groove as the pair registered half-centuries in tandem.
Rahane, however, was unlucky to be adjudged leg before to Mirwais Ashraf after completing his fifth ODI fifty.
Dhawan departed exactly an over later when Mohammad Nabi uprooted his off-stump. He smashed four boundaries and a six off 78 deliveries.
Their dismissals in quick succession, though, hardly mattered as Rohit Sharma (18 not out) and Dinesh Karthik (21 not out) hit up the remaining runs easily.
Earlier, only three Afghan batsmen managed double digit scores as India surprisingly fielded an unchanged squad for the dead rubber.
After pacer Mohammed Shami provided the breakthrough after an opening stand of 30, in the form of Nawroj Mangal, it was one-way traffic as Jadeja ripped apart the inexperienced Afghan batting line-up with his left-arm spinners.
Afghanistan's total was centred around No 8 batsman Samiullah Shenwari, who scored a sensible 50 off 73 balls, inclusive of six fours and a six. His rearguard knock helped the team cross the 150-run mark, after they were reduced to 95 for seven at one stage.
Shenwari shared 26 runs with No 10 batsman Shapoor Zadran, and 22 for the last wicket with Dawlat Zadran, to bring up his fifth ODI half-century and second in the tournament.
Apart from Shenwari only two others -- Noor Ali Zadran (31) and Mohammad Shahzad (22) -- could reach double figures in the face of a hostile Indian spin attack.
Image: Indian players celebrate after Ravindra Jadeja (second left) dismisses Afghanistan's Noor Ali Zadran .
Photograph: Andrew Biraj/Reuters
Asia Cup: Demoralised India look to sign off on a good note
'Lack of quality bowlers affecting India's performance abroad'
Two famous India-Pakistan ODIs, 10 similarities!
Turning points in India-Pakistan match: Karthik's miss, Afridi's blast
Sri Lanka whip Afghanistan, seal Asia Cup final berth