Dropped catches cost Afghanistan the chance of a famous upset against India in the ICC World Twenty20 as they were beaten by 23 runs in Colombo.
After Gautam Gambhir and Virender Sehwag were dismissed early on, Virat Kohli benefited from a ball dropped over the boundary for six on his way to 50 and Suresh Raina had two let-offs in making 38.
The pair led India to 159 for five and though Mohammad Nabi led a spirited run-chase, India made a winning start ahead of their clash with England on Sunday.
Shapoor Zadran screamed in celebration in the third over as Gambhir edged onto his stumps for just 10 runs before Mohammad Shahzad snaffled a poor shot from Sehwag to embarrass the left-armer for eight.
Yuvraj Singh announced himself with a huge six but he was soon dismissed by Karim Sadiq as he sliced a cut straight to Shapoor.
After such a strong start, Afghanistan's attack began to falter, a series of dropped catches helping Kohli reach his half-century.
But Dawlat Zadran would soon remove the middle-order batsman, Nabi taking the catch and then adding another scalp when he scooted the ball under Raina's bat in the 20th over.
Mahendra Singh Dhoni added 10 runs to India's tally from the last two deliveries and Afghanistan were set a target of 160 runs for victory.
They made a promising start, openers Shahzad and Nawroz Mangal putting on 26 before the former slogged the ball straight to Yuvraj at mid-on.
Yuvraj then trapped Mangal lbw with his very first delivery before forcing Sadiq into an aimless hit towards Gambhir.
Asghar Stanikzai edged into Dhoni's gloves next ball and though Samiullah Shenwari survived the hat-trick ball, a third wicket fell in six deliveries when he was caught and bowled by Ravichandran Ashwin.
Nabi and Shafiqullah breathed new life into the run chase with giant sixes but the latter soon walked after a contentious lbw call off Irfan Pathan's bowling.
Nabi's effort of 31, including two fours and two sixes, came to an end in the 17th over as he lifted Ashwin straight to Ishant Sharma.
Najibullah Zadran spanked Balaji to the cover boundary but was then run out, with Balaji dismissing Dawlat Zadran to wrap up the innings.