Mumbai, who finished on 111/4 in 14.3 overs, will now take on Steve Smith's Rising Pune Supergiant in the final on Sunday.
Chasing just 108, Krunal joined hands with skipper Rohit Sharma for a 54-run fourth wicket stand to steady Mumbai's ship after early hiccups which left them on 34/3 at one stage.
Rohit (26) gave away his wicket cheaply, picking out Ankit Rajpoot at deep square leg off Nathan Coulter-Nile's delivery.
KKR caused a flutter among Mumbai ranks scalping three wickets inside the first six overs.
Piyush Chawla (2/34) was at the forefront of the early demolition, sending the dangerous Lendl Simmons (3) and Ambati Rayudu (6) back in the hut with a googly and a peach of a delivery respectively which beat Rayudu all ends up.
At the end of Powerplay, Mumbai were in a spot of bother at 36/3. But once Rohit and Krunal saw off the initial few overs, it was Mumbai all the way as the latter played the role of aggressor with deft fours and lusty sixes to inflict a 16th defeat on their rivals in the two sides' 21st meeting.
Krunal's innings was laced with eight fours and no six. With him at the crease was Keiron Pollard (not out 9) when Krunal hit the winning runs.
Earlier, Mumbai leg-spinner Karn Sharma took four wickets to bowl out KKR for a paltry 107 in 18.5 overs.
Karn (4/16) was brilliant on the night taking the wickets of Sunil Narine (10), Gautam Gambhir (12), Colin de Grandhomme (0) and Ishank Jaggi (28) to derail KKR's innings.
Suryakumar Yadav (31) and Jaggi put a semblance of a fight with a 56-run association for the sixth wicket but could not script a turnaround as the former fell in the 18th over looking to accelerate.
Umesh Yadav (2) was not out as Rajpoot (4) was the last man to be dismissed.
Opener Chris Lynn (4) was sent back early by medium pacer Jasprit Bumrah (3/7) with a fullish delivery which the explosive Australian tried to loft over mid-on but was picked up by Pollard.
The men in purple, who usually score at a brisk pace in the Powerplay overs, struggled to get going with the ball not coming on to the bat even as Gambhir continued his good form hitting the first four of the innings in the third over off Mitchell Johnson, playing in place of Mitchell McClenaghan.
Narine, kept quiet by Bumrah, Mitchell Johnson (2/28) and Lasith Malinga (1/24), cut loose with an uppish shot over deep midwicket for the first six of the innings before Karn outfoxed the West Indian spinner with a googly that saw Parthiv Patel effect an easy stumping.
Robin Uthappa (1) did not last long, being trapped plumb by Bumrah, while trying to flick across the line.
After six overs, KKR could muster just 25/3, and captain Gambhir lost his wicket five balls into the seventh over. The southpaw was looked good before playing against the turn off Karn for Hardik Pandya to pouch the ball at deep midwicket.
Keeping veteran tweaker Harbhajan Singh on the bench, Karn vindicated his captain's faith in him by taking the wicket of Colin de Grandhomme in the next delivery, pinging the New Zealander on his backfoot for an easy leg before decision.
After 10 overs, KKR were tottering at 43/5. In the next four overs, Suryakumar and Jaggi sought to stem the rout, scoring 40 runs before their stand was broken by the excellent Karn, taking the prized scalp of Jaggi.
Chawla departed adding just two to the total and Coulter-Nile tonked Johnson for a six to bring up KKR's 100 in the 17th over before getting out.