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 Ankit Rajpoot (4) was the last man to be dismissed.
Morning showed the day as 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 Keiron 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 skipper 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 Rohit Sharma'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.
Piyush Chawla departed adding just two to the total and Nathan Coulter-Nile tonked Johnson for a six to bring up KKR's 100 in the 17th over before getting out.
Brief scores: Kolkata Knight Riders 107 all out (Suryakumar Yadav 31; Karn Sharma 4/16, Jasprit Bumrah 3/7) vs Mumbai Indians.
Being five down inside first 6-7 overs, was always going to be difficult, says Gautam Gambhir
We deserve to be in the final ,says MI skipper Rohit Sharma
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
IPL10: Kolkata Knight Riders wins rain-interrupted game by 7 wickets
Kolkata to face Mumbai in second qualifier
IPL 2017: Kolkata restrict Hyderabad to below par 128/7
Hyderabad post 128/7 against Kolkata in IPL 2017 Eliminator