Moeen Ali picked up two prized wickets as England defeated India by three wickets in Perth to reach the Tri-Series final.
The Worcestershire all-rounder dismissed Virat Kohli and Suresh Raina in successive overs after India had reached 103-1.
Moeen finished with the impressive figures of 2-35 from 10 overs as Indian were dismissed for 200 in 48.1 overs on a pitch of uneven bounce.
England then lost half of their side for 66 – including Moeen for 17 – but a partnership of 125 between James Taylor (82) and Jos Buttler (67) helped seal victory.
They will now meet Australia in Sunday's final.
Moeen came into the attack as the fifth bowler for the 18th over and struck in his sixth over to dismiss Kohli for eight.
He came down the wicket to the spinner and Joe Root held onto an excellent running catch at long off.
Moeen broke through again in his next over as Raina (1) danced down the wicket to a delivery outside off stump and edged a catch to Chris Woakes at backward point off an attempted drive.
England and Moeen also found runs hard to come by in reply in the difficult batting conditions.
The normally fluent Moeen managed just one boundary off 34 deliveries before he holed out to Ambati Rayadu at long off, after coming down the wicket to slow left armer Axar Patel.
England were then 40-2 and a flurry of wickets left India in the driving seat before the Taylor-Buttler rescue act.