Pakistan appeared set to complete the whitewash after bowling India out for 167 in Delhi and then getting solid contributions from Misbah-ul-Haq and Nasir Jamshed to close in on their target.
However, with seven balls left and Pakistan still 11 shy of their target, Mohammad Hafeez was caught by Yuvraj Singh at short mid-wicket to give Ishant Sharma his third wicket and wrap up the victory for India.
Although fellow opener Kamran Akmal went for a duck and Younis Khan soon followed for six, Jamshed kept his cool to make 34 before being trapped lbw by Ravichandran Ashwin.
Misbah helped the score along to 113 before departing for 39, caught by Ajinkya Rahane off Ashwin in the slips. Pakistan endured a brief wobble with Shoaib Malik managing only five and Umar Akmal then stumped by Mahendra Singh Dhoni for 25, leaving the tourists on 125 for six.
Hafeez and Umar Gul steadied the ship and looked to have them in a winning position with a little over 10 overs to go, but when Gul fell for 11, it prompted a late collapse with Saeed Ajmal following six balls later for one and Junaid Khan run out without scoring before Hafeez was dismissed.
Earlier, Ajmal had dominated proceedings, taking five for 24 as the hosts were dismissed in 43.4 overs. Dhoni, with an unbeaten century and half-century in the first two games, top-scored with 36 as he hit out with wickets falling regularly around him.
Mohammad Irfan did the early damage as he removed openers Rahane and Gautam Gambhir with just 29 runs on the board. Virat Kohli was dismissed for seven when Junaid found an outside edge to give Younis a low but comfortable catch at second slip, leaving the home side on 37 for three.
India had reached 63 when Yuvraj was squared up by a straight delivery from Hafeez and was bowled for 23. India were battling their way back into the game and Dhoni, playing despite a sore back, hit successive sixes off Hafeez. However, Suresh Raina went for 31 when he was trapped lbw by Ajmal to leave India on 111 for five.
Ashwin went first ball, again lbw to Ajmal who was denied a hat-trick by Ravindra Jadeja. Dhoni responded with a six off Hafeez but perished to Gul. Bhuvneshwar Kumar was dismissed for two, trapped lbw by Ajmal with a doosra, to leave the home side 141 for eight. Ajmal then secured his five-wicket haul by dismissing Sharma and Jadeja, who made 27.