Mumbai Indians cruised into the IPL final with a comfortable six-wicket win over Kolkata Knight Riders, largely thanks to a fine bowling effort.
Leg-spinner Karn Sharma took 4-16 and Jasprit Bumrah continued his superb form with 3-7 as Mumbai rolled KKR over for 107 in 18.5 overs.
Three early wickets gave KKR hope of a dramatic fightback but those hopes were short-lived as Krunal Pandya's unbeaten 45 from 30 balls saw Mumbai reach their target inside 15 overs.
From the moment they lost the toss, things began to go wrong for Kolkata with runs hard to come by early on and, having lost Chris Lynn in the second over, Sunil Narine and Robin Uthappa followed before the end of the powerplay.
Having ousted Narine with his googly, Karn then picked up the scalps of Gautam Gambhir and Colin de Grandhomme in consecutive deliveries.
A fifty partnership between Ishank Jaggi and Suryakumar Yadav helped KKR recover from 31-5 but with quick runs needed going into the final six overs, another flurry of wickets followed.
Bumrah returned to account for Suryakumar (31), Mitchell Johnson claimed two wickets of his own and Lasith Malinga finished things off by bowling Ankit Rajpoot.
Another leggie, Piyush Chawla, put the pressure on Mumbai at the start of their chase, trapping Lendl Simmons lbw before bowling Ambati Rayudu to reduce them to 34-3 in the sixth.
However, captain Rohit Sharma and Pandya remained calm and although the former fell with 20 still required, Pandya ensured Mumbai got across the line just two overs later.
Mumbai now travel to Hyderabad for the final against Rising Pune Supergiant, looking to win their third IPL title.