India beat England by five runs to win the Champions Trophy final at Edgbaston on Sunday as the hosts' wait for a major one-day international title continued.
In a match reduced to 20 overs per side because of rain, World Cup holders India were held to 129 for seven after losing the toss.
But after Eoin Morgan and Ravi Bopara threatened to win the game with the bat for England, India took four wickets for three runs in eight balls.
Chasing 130 to win in a match curtailed to 20 overs aside, the hosts seemed well on their way to a victory as Morgan (33 off 30 balls) and Bopara ( 30 off 25) were in command in a stroke-filled sixth wicket partnership of 64. However, as both fell off consecutive balls in an over by previously-wayward Ishant Sharma, the hosts fell apart as India regrouped for a famous victory.
England needed a six off the last ball but that proved beyond tailender James Tredwell as the hosts finished on 124 for eight in 20 overs.
Defeat meant England had still to win a major ODI title having lost three World Cup finals (1979, 1987 and 1992) and the 2004 Champions Trophy final against the West Indies at The Oval when they last staged this event in 2004.
MS Dhoni has now become the first captain ever to lift all three ICC trophies.
Earlier, a discilpined bowling performance by the English bowlers, overcast conditions and some wayward batting combined to see India restricted to a modest 129 for seven.
Couple of stoppages after the match finally started also didn't help India's cause. Barring in-form Shikhar Dhawan (31) and Virat Kohli (43, 34 balls, 4x4, 1x6), none of the other top-order batsmen made significant contribution after India were put into bat.
Kohli and Ravindra Jadeja (33 no)added 47 runs for the sixth wicket after India were reduced to 66 for five.
Ravi Bopara's (3/20 in 4 overs) brilliant incisive spell in the middle overs proved to be invaluable for England's cause as the largely untested Indian middle-order couldn't stand up and be counted on the D-Day.
Rohit Sharma (9) yet again baffled one and all as he played an irresponsible shot off a Broad delivery which came in after pitching. Rohit didn't have any footwork as he played across the line to get castled.
In-form Dhawan had no such worries as he started from where he had left against Sri Lanka in the semi-final. The first significant shot was a slash over backward point off Broad for a six.
The start-stop affair did hamper the proceedings and Dhawan hit a slog sweep off James Tredwell after the second rain interruption and followed with another deft reverse sweep to enter the 30's.
However it was Bopara's gentle seam-up stuff that brought about an end to Dhawan's innings. The ball stopped on the left-hander who tried to make room to hoick it over cover but only managed to find Tredwell. Dhawan's 31 came off 24 balls with two boundaries and a six but importantly he tried to attack the English bowlers despite interruptions.
The first 10 overs produced 59 runs at the expense of both openers.
Dhoni's decision to send Dinesh Karthik (6, 11 balls) above himself and Suresh Raina was surprising considering the match was curtailed to 20 overs. Karthik struggled to get going during his brief stay and eventually holed out trying a wild sweep shot as Eoin Morgan took a simple skier.
The watershed moment of the match came when Bopara struck twin blows dismissing both Raina and Dhoni in the 13th over of the innings.
Raina (1) was also done in by the slowness of the pitch as his attempted lofted shot over mid-on off Bopara never got the required elevation with skipper Alastair Cook taking a simple catch.
Dhoni (0) went for a big hard slash over point when Bopara dug one short but managed to find the fielder in the deep. From 50 for one, it suddenly became 66 for five.
Kohli carried manfully as India reached 100 in the 18th over. The best shot he hit was a six over deep mid-wicket of Broad. Jadeja took a leaf out of Kohli's book to loft Anderson over extra cover.
Jadeja faced 25 balls for his 33 in which he hit two fours and two sixes.