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 for 37) bowled well until the 19th over, which 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, 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 for 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 for 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 out to Narine at point. At the end of the over, Rajpoot had conceded 19, 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 for 7.
BRIEF SCORES: Kolkata Knight Riders 178 for 7 (Pandey 81 not out; K Pandya 3-24) lose to Mumbai Indians 180 for 6 (Rana 50, H Pandya 29 not out; Rajpoot 3-37) by 4 wickets