Karnataka were 41 for one at stumps, still needing 302 runs for an outright win, after the hosts' second innings folded for 206 at the Eden Gardens.
Bengal suffered early jitters as the two openers -- first innings century maker Arindam Das (3) and Deep Dasgupta (8) -- returned cheaply with only 14 runs on the board, and the collapse continued as Joshi used his experience to exploit the bounce on the wicket to rattle the top and middle order.
Indian skipper Sourav Ganguly failed yet again, managing only five before he stepped out to drive Joshi, mistimed and gave a straight catch to Shyam Ponnappa at mid-off.
As the hosts were tottering at 89 for five, all rounder Laxmi Ratan Shukla (60; 134m, 114b, 9x4) and Sanjib Sanyal (21) tried to steady the ship with a useful 57 run stand for the sixth wicket before Sanyal was snared by Joshi, who finished with figures of five for 62.
The remaining wickets fell quickly and Bengal were all out 26 minutes after tea, after taking a lead of 342.
Karnataka lost skipper J Arun Kumar (13) in the seventh over, but Barrington Rowland (13) and Sujith Somasunder (12) remained unseparated at close of play.
Brief scores: Bengal 315 and 206 all out (L R Shukla 60; S Joshi 5/62). Karnataka 179 and 41/1.