With the win, Karnataka, who last won the trophy in 1998-99, are now joint second with Delhi while Mumbai top the list with 40 wins so far.
For two-time winners Maharashtra, it was another chance lost to lift the trophy they last won in 1940-41.
Resuming the fifth and final day at 272 for six, Maharashtra lost their last four wickets for 94 runs and were bowled out of 366 in the second innings. Leggie Shreyas Gopal shared eight wickets with his captain and pacer Vinay Kumar. Maharashtra made 305 in the first innings.
Chasing a target of 157, Karnataka, who made 515 in the first innings, got a good start with Robin Uthappa (36) and Lokesh Rahul (29) adding 65 runs for the first wicket.
But after a stable start, both Uthappa and Rahul departed in quick succession as Karnataka were reduced to 87/2. Rahul was also adjudged the Man of the Match for his century in the first innings.
Amit Verma (38) and Manish Pandey (28 not out) came up with valuable contributions to take the team to the threshold of a win, but Verma fell at the stroke of tea with Chirag Khurana taking a good return catch off his own bowling that saw Karnataka stumble at 120/3.
Pandey and Karunesh Nair (20 not out) then took the team home safely without further losses.