Karnataka pacers Vinay Kumar (3/32) and HS Sharath (3/12) shared six wickets between them on the fourth and final day to score a historic 160-run win over defending champions Mumbai in their Ranji Trophy Group A match and book a berth in the knockout stage of the tournament.
It was the first outright win in Ranji history for Karnataka against Mumbai in 22 attempts.
Having earned six points from this game, Karnataka have now moved to 32 points from seven matches, and are placed at the top of the table.
Karnataka still have one game left in the league stage. They will face a formidable Delhi in their last league match away from home.
Mumbai, with 23 points from seven matches, are at number three position in the table, while Gujarat are at second spot, three points ahead of the defending champions.
Mumbai will have a tough task at hands in their last league encounter when they will take on Gujarat.
There is a danger of Punjab shattering Mumbai's dreams of qualifying for the knockout stage because they have as many points as Mumbai and will be taking on an out-of-contention Jharkhand in their final league match.
Karnataka scored 251 in their first innings and in reply Mumbai were all out for 269, taking a vital 18-run lead. In their second innings, Karnataka made a disastrous start losing two wickets for 32, but Ravikumar Samarth's half-century and Manish Pandey's match-winning 119 helped the hosts score 299, setting Mumbai a target of 282 runs.
Mumbai, though, were bundled out for a meagre 121 in their second stint to give Karnataka an historic occasion to celebrate.
Karnataka's bowling was led by pacers Vinay Kumar and Sharath, both of whom scalped three wickets each. They well very well supported by India discard Abhimanyu Mithun (2/28) and leg-spinner Shreyas Gopal (2/13).
Vinay Kumar bowled his heart out, troubling the top order Mumbai batsmen with his deadly swingers just outside the off-stump. He had an astonishing first spell, where he claimed two for 10 in seven overs, which drifted the game away from Mumbai.
Mumbai got off to a poor start in their run chase as they lost eight wickets for 100 runs. Doraiswamy Subramanian (13) and Kaustubh Pawar failed to give Mumbai a good start.
Much was expected from their captain Wasim Jaffer and Aditya Tare, who have been among runs for Mumbai this season, but they also failed to live up to the expectations.
Jaffer (3), especially was a great disappointment, getting out leg before rooted in the crease twice in the match against Sharath in the first innings and Abhimanyu Mithun in the second.
Tare, who also scored just 18 runs in the first innings, was cleaned up for zero by Vinay.
When right-handed Siddesh Lad joined Hiken Shah, Mumbai were struggling at 50 for four but both put on a fight to take the total to 93, before they were dropped twice during their knocks.
Karnataka, with their attacking field placements and bowling, dealt three blows on the same score, sending back Shah (28), Lad (24) and Suryakumar Yadav (0) back to the pavillion.
Thereafter, the hosts skittled out the visitors by removing Saurabh Netrawalkar (0), Shardul Thakur (10) and Javed Khan (15), cheaply.
Earlier, Karnataka after resumed at an overnight second innings score of 287 for eight, could add just 12 more runs to the total before losing the last two batsmen.
Brief scores: Karnataka: 251 & 299 Mumbai: 269 & 121 (Hiken Shah 28; R Vinay Kumar 3/32, HS Sharath 3/12)
Photos: These Indian cities top the list in online purchase of sex products
Photos: Varun Dhawan and Alia Bhatt at studio in Bandra
Photos: Katrina Kaif, Shamita Shetty at Mumbai airport
Photos: Varun Dhawan, Alia Bhatt promote 'Badri...' on 'Dil Hai Hindustani'
In pictures: 15 facts about kissing that will surprise you