Chasing 179 for victory, Mumbai -- who have won 13 times in their 18 meetings so far with KKR -- were always up against it losing wickets at regular intervals.
But a late onslaught from left-hander Nitish Rana (50; 29b; 5x4, 3x6) and poor bowling at the death by Trent Boult and Ankit Rajpoot saw the men in purple throw away the tie which they should have won.
Rajpoot (3/37) bowled well until the 19th over when he went for 19 runs. Boult, KKR's pace spearhead, had a forgettable outing going for 47 runs in his four overs without taking a wicket.
Mumbai got off to a flying start as their openers Parthiv Patel (30, 27b; 3x4, 1x6) and Jos Buttler joined hands for a 65-run association for the first wicket.
Patel, who has the third-worst average in the IPL for anyone to have opened in the at least 20 innings, looked to be settling down as the Gujarat Ranji Trophy winning captain slog-swept chinaman Kuldeep Yadav for a huge six over wide long-on before the left-arm spinner got the back of the 32-year old.
Parthiv looked to sweep down the leg side again coming across his stumps with the ball straightening from off stump towards middle for a simple leg before wicket decision.
Buttler, who was looking good for his 28 (22b 1x4 2x6), followed suit in the next over, Ankit Rajpoot removing the England wicketkeeper who played across the line getting LBW in the process.
Skipper Rohit Sharma (2), who raised a few eyebrows by sending Rana ahead of him at No.3, lasted just six balls before Sunil Narine brought about the third leg before wicket of the innings.
In came Krunal Pandya, who starred with the ball (3/24), with his team in a spot of bother losing three wickets for just nine runs.
Together Krunal and Rana added 23 runs in good time for the fourth wicket but KKR dealt the hosts another timely blow.
Rajpoot was in the thick of things again, managing to get a thin edge off Krunal who tried to work the ball fine down the leg side with keeper Robin Uthappa pouching a regulation catch.
At 97/4, Keiron Pollard had a job to do when he joined Rana in the middle. The big-hitting West Indian though failed to conjure up any magic as KKR bowlers Kuldeep, Chris Woakes and Narine bottled up the pair towards the end of their essay.
Trying to up the ante, Pollard went for a heave but could manage as far as substitute Rishi Dhawan at third man.
There was no stopping Rana though. In the 18th over, the Delhi lad made Boult leak 19 runs with Hardik Pandya also joining the party.
There seemed to be no respite for Rajpoot as well before the Kanpur medium pacer sent the dangerous Rana back in the hut as the latter tried to make room for himself but holed in to Narine at point. In the end of the over, Rajpoot conceded 19 as well leaving Boult to defend 11 runs in the last over, which he eventually couldn't.
Earlier, a rampaging Manish Pandey led with an unbeaten 81, as KKR overcame mid-innings hiccups to post a challenging 178/7.
Facebook records 350 mn IPL 10-related interactions
Being five down inside first 6-7 overs, was always going to be difficult, says Gautam Gambhir
Pune Supergiant stand between Mumbai Indians and third IPL title
IPL 10: Mumbai bundle Kolkata out for paltry 107 in second qualifier
IPL 10: Mumbai Indians elect to field vs KKR in Qualifier 2
IPL 10: KKR look to quell Mumbai Indians challenge in Qualifier 2
IPL Play-offs need to have an extra day, says KKR co-owner Shah Rukh
SRH bowling coach Muttiah Muralitharan rues not being able to play 20 overs
IPL10: Kolkata Knight Riders wins rain-interrupted game by 7 wickets
IPL 10: Kolkata Knight Riders won by 7 wickets