England have sealed their place in the Tri-Series final against Australia after beating India by three wickets in Perth.
India set a target of 200 after collapsing from 83-0 knowing only a victory would be enough to carry them into the final on Sunday 1 February.
England endured a rocky start that saw them fall to 44-3 but James Taylor and Jos Buttler struck a combined 125 to help ease their side in control.
Needing the win, India provided an encouraging start through Shikhar Dhawan and Ajinkya Rahane, who struck an 83 between them.
But after Dhawan (38) was caught behind by Buttler off Chris Woakes' delivery, things quickly began to unravel for the world champions, losing six wickets from just 31 runs as they fell to 165-9.
Rahane (73) provided the only real resistance as wickets continued to fall, with Steve Finn taking three of them. Mohammed Shami (25) and Mohit Sharma (not out) rediscovered some late momentum but were unable to significantly boost their side's total.
With an attainable target in sight, England got off to a woeful star as Ian Bell was caught lbw by Sharma for 10.
Things worsened after Moeen Ali went for 17 after Ambati Rayudu's low catch. Joe Root entered but was dismissed after just two balls after driving straight into the waiting arms of Roger Binny as the wickets began to pile up amid some terrible shot selection.
Eoin Morgan gifted another wicket to Binny before Taylor began to steady the ship. Joined by Buttler, the duo carried England out of their early slump as Taylor struck an 82 before edging into the arms of Binny.
England had looked to be cruising to victory but Buttler's dismissal after hitting 67 ensured a nervous end. Needing just eight for the win, disaster appeared to strike when Stuart Broad looked to have been caught out behind by MS Dhoni, only for the umpire to correctly rule him not out.
Following that reprieve, Broad helped edge England over the line with Ravi Jadeja's no-ball sealing the win.