Chasing Gujarat's total of 151 for 9, Karnataka were struggling at 38 for 4 at one stage, but fought back to overhaul the challenging score with just three balls to spare. Karnataka made 152 for six in 19.3 overs to notch up their first win in two matches.
The winning runs were scored by middle-order batsman Deepak Chougule (41 not out), who struck a boundary off left-arm seamer Ashraf Makda through the point region.
With things looking extremely difficult after the top order crumbled withou disturbing the schoreboard too much, it was the fluent 51-run stand for the fifth wicket between Chougule and B Akhil (35) that brought Karnataka back into contention.
Vinay Kumar came up with a quickfire 24 that helped Karnataka keep pace with the required run-rate.
Earlier, Gujarat, put in to bat, made a sound start before losing their way in the last five overs when they lost seven wickets for just 28 runs.
Opener Azhar Bilakhia played a lone hand, making 62 off 47 balls but none of the others apart from wicket-keeper Parthiv Patel (26) offered any support.
With today's loss, Gujarat now have two losses from three matches and it it is going to be very difficult for them to make it to the group final.
Gujarat 151 for 9 (Azhar Bilakhia 62, Parthiv Patel 26) lost to Karnataka 152 for 6 in 19.3 overs ( Deepak Chougule 41 n o, B Akhil 35, Vinay Kumar 24) by four wickets