Afghanistan 252 for 8 (Shahzad 124, Nabi 64, Jadeja 3-46) tied with India 252 (Rahul 60, Rayudu 57, Nabi 2-40, Rashid 2-41, Aftab 2-53)
Dubai: Team India's unbeaten streak in the ongoing Asia Cup 2018 came to an end as Rashid Khan struck with the penultimate delivery of the match to salvage a tie for Afghanistan here on Tuesday.
Ravindra Jadeja mistimed a pull to Najibullah Zadran when the scores were level on 252 to deny India - already assured a place in Friday's final - victory.
India needed just seven from the final over and looked set to get home when Jadeja found the boundary with a slog-sweep off spin sensation Rashid (2-41) from the second ball, but it was honours even when he fell for 25.
Earlier, Mohammad Shahzad blasted a magnificent century in a Dubai thriller before Afghanistan's bowlers joined the party to spoil India's 100 percent Asia Cup record.
Shahzad's brutal 124 from only 116 balls and a rapid 64 off 56 deliveries from Mohammad Nabi got the underdogs up to 252-8, Jadeja taking 3-46 in an encounter where even a shock win would not have been enough for Afghanistan to reach the decider.
They finished on a high note, though, preventing the holders from maintaining their perfect record ahead of a showdown with Pakistan or Bangladesh after openers KL Rahul (60) and Ambati Rayudu (57) got them off to a flyer with Rohit Sharma and Shikhar Dhawan rested.
It was a one-man show at the top of the order for Afghanistan after Asghar Afghan won the toss, the powerful Shahzad dealing in boundaries as wickets tumbled at the other end.
The wicketkeeper-batsman was fortunate to reach his half-century when he was dropped by Rayudu at mid-off in the ninth over and Nabi offered some support in a fifth-wicket stand of 50 after debutant Deepak Chahar got rid of Gulbadin Naib for his maiden ODI wicket.
Shahzad continued to set about the India attack, bringing up his fifth ODI hundred by glancing Chahar to the fine-leg boundary before Kedar Jadhav finally saw the back of the burly opener, who cleared the ropes seven times and hit another 11 boundaries.
Nabi kept Afghanistan motoring, but their total did not look to be sufficient when Rahul and Rayudu combined for a century opening stand to put India well on their way to another victory.
All-rounder Nabi got the breakthrough when he dismissed Rayudu - chief aggressor with four sixes - and Rashid got in on the act when he trapped Rahul leg before, but Dinesh Karthik's patient 44 kept the holders on course.
Yet wickets tumbled at regular intervals as India faltered and Jadeja fell in a dramatic final twist.