Chasing 293 for victory, Karnataka were bowled out for 239 in their second innings and failed to make it to the knock-out round.
Karnataka have been the dominant team in domestic cricket for the last few years, having won the Ranji Trophy the last two years.
They finished fifth in the points table with two victories, a defeat and five draws from eight games.
Maharashtra finished seventh with a solitary victory, two defeats and five draws in eight games.
Vidarbha, Bengal and Assam qualified from Group A after aggregating 29, 28 and 26 points respectively.
Karnataka's famed batting failed to deliver at the crunch. Apart contributions from Robin Uthappa (61) and wicketkeeper CM Gautam (65 not out), who ran out of partners in the end, the others were unable to negotiate Maharashtra medium pacers Anupam Sanklecha and Nikit Dhumal, who claimed four and five wickets respectively.
Brief Scores:
Maharashtra: 212 (A Bawane 87) & 260 (S Mundhe 81, R Tripathi 78, R Vinay Kumar 4-71).
Karnataka: 180 (Sanklecha 4-58) & 239 (C M Gautam 65, N Dhumal 5-78, Sanklecha 4-65).
Maharashtra won by 53 runs
Mumbai top Group B, Gujarat knocked out
Mumbai: Mumbai grabbed a handy 110-run first innings lead over Gujarat before their concluding Group B game ended in a tame draw.
The hosts topped the group with 35 points.
Gujarat picked one point from the drawn encounter to take their tally to 24, the same as Madhya Pradesh.
However, MP's net run-rate (-0.059) was marginally superior to Gujarat's (-0.092) which was enough to pilot the former into the quarter-finals along with Mumbai and second-placed Punjab (26 points) from the group.
When play started on Friday, with Gujarat on 355 for 5 -- chasing Mumbai's imposing first innings total of 531, the onus was on Bhargav Merai (unbeaten 150 overnight) to try and take the visitors past the 40-time champions' huge score.
But Merai fell for 166, after adding 16 more runs to his last evening's score, and the slim hopes of Gujarat of grabbing the first innings lead vanished.
Merai, who was let off when on 0 by Shardul Thakur of his own bowling on Thursday, offered the gift again on Friday and the bowler accepted the catch to end his marathon 331-minute knock during which he hit 16 fours.
Shardul went on to finish with fine figures of 6 for 107.
With a handy lead in the bank, Mumbai batted their way to 227 for 6 in their second innings before stumps were drawn for the last time.
Brief Scores:
Mumbai: 531 & 227-6 (A Herwadkar 41; Rujul Bhatt 4-76)
Gujarat: 421 (P Panchal 36, B Merei 166; S Thakur 6-107).
Match drawn. Mumbai 3 points. Gujarat 1.
Guwahati: Bengal and Assam qualified for the knock-out stage after grabbing three and one point respectively from their drawn Group A match.
While Bengal had already ensured their place in the quarter-finals after they forced Assam to follow-on on Thursday, the hosts also managed to sneak into the knock-out stage after denying the visitors an outright win, finishing at 143 for 8 on the fourth and final day.
Bengal and Assam are occupying second and third place with 28 and 26 points respectively in Group A, headed by Vidarbha with 29 points.
Assam, who had conceded a massive 301-run first innings lead to Bengal, resumed their second innings at 72 for 2 but found the going tough as wickets fell at regular intervals.
However, the hosts still managed to save the match, courtesy a patient half-century by opener Pallavkumar Das. He hit five fours in his 182-ball innings.
Brief Scores:
Bengal: 444-6 declared
Assam: 143 & 143-8(PP Das 55; AA Gani 5-62)
Match drawn with both teams qualifying
Jharkhand qualify for knock-outs
Hyderabad: Jharkhand became the second team from Group C to qualify for the knock-outs after posting a 10-wicket win, with a bonus, over Hyderabad on the fourth and final day.
Resuming on 169 for six, Hyderabad added another 98 runs to their second innings total, with B Anirudh top-scoring with an unbeaten 79.
Anirudh's knock came off 136 balls and included 10 boundaries and a six, but he failed to get enough support from the lower-order batsmen, and finally the home team was bundled out for 267.
Rahul Shukla (5-89) was the pick of the Jharkhand, taking his third five-wicket haul in first-class cricket.
Hyderabad could set Jharkhand a target of just 27 runs, as they had earlier conceded a massive 243-run first innings lead.
Jharkhand then scored 29 with 10 wickets to spare to not just register an outright victory but also earn a bonus point and make it to the quarter-finals.
Saurashtra is the other team from Group C to make it to the quarters.
Brief Scores:
Hyderabad: 145 & 269 (B Anirudh 78; Rahul 5-89)
Jharkhand: 388-8 declared & 29 for no loss.
Jharkhand won by 10 wkts, with bonus point, and qualified
Services beat Tripura by an innings
Agartala: Tripura's batting failed to come good for a second successive time as Services beat them by an innings and 62 runs on the fourth and final day of their Group C match.
Overnight 9-0 after being forced to follow-on, in reply to Services’ mammoth first innings total of 512, the hosts folded for 220, 10 less than what they managed in the first essay.
Half-centuries by Parvinder Singh (58) and Rajesh Banik (56) were the only noteworthy contributions in an otherwise pedestrian batting effort by the home side.
For Services, Raushan Raj was the top wicket-taker, claiming 3 for 37 in 17 overs.
Diwesh Pathania and Muzzaffaruddin Khalid claimed two wickets each.
Both the teams were out of the reckoning for a quarter-final berth.
Brief Scores:
Services: 512
Tripura: 230 & 220 (f/o) in 94.5 overs (Parvinder Singh 58, Rajesh Banik 56, Raushan Raj 3-37).
Vidarbha thrash Haryana to advance into quarters
Nagpur: Left-arm spinner Ravi Jangid bowled Vidarbha to the knockouts with career-best figures of 7-59 in his second innings, which took his wickets tally in the match to 11, and helped the home team defeat Haryana by an innings and 31 runs in their Group A match.
Jangid, who had finished with figures of 4-44 in the first innings, bowled for 41 overs in the second essay for his seven-wicket haul. He was ably assisted by spinner Akshay Wakhare (2-105).
In reply to Vidarbha's massive first innings score of 504, Haryana were earlier bundled out for 241 and were subsequently asked to follow-on.
Resuming on 66 for two in their second innings while following on, Haryana started off well with overnight batsmen Mohit Hooda and Rohit Sharma playing responsible knocks.
While Hooda contributed with 38, Rohit scored his maiden first-class century but lack of support from the middle and lower order left the team in tatters.
Rohit was the ninth batsman to be dismissed after a fine 107 off 241 deliveries that included 10 fours. In the end, Haryana were bowled out for 232.
Brief Scores:
Vidarbha: 504-7 declared
Haryana: 241 & 232 (f/o) (Rohit Sharma 107; Ravi Jangid 7/59).
Points: Vidarbha 7, Haryana 0
Image 1: R Vinay Kumar. His fine bowling couldn't save Karnataka from defeat
Image 2: Bengal players celebrate after reaching the quarter-finals
Fashion, with a twist of patriotism
RIL-ONGC row: Can the govt find a solution?
Rajya Sabha paralysed again: Opposition targets V K Singh, Bhagwat
VOTE: Do you agree with the Delhi government's odd/even car proposal?