Mumbai made their first Ranji Trophy final in three seasons even though they were denied an outright win with fighting centuries from Madhya Pradesh wicket-keeper batsman Naman Ojha and Harpreet Singh on day five of the semifinal in Cuttack on 18 February.
Madhya Pradesh, who needed to chase a mammoth 571-run target in little more than four sessions, ended their second innings at 361 for five with the game ending in a draw and Mumbai entering the final on the basis of first innings lead.
They meet Saurashtra in the final to played in Pune from February 24.
Madhya Pradesh, starting the day at 99/2, went on to frustrate the Mumbai bowlers for 109 overs, putting a much improved effort than the first innings where they managed 227 to Mumbai's 371.
Ojha (113), who started the day on 14, ended up hitting his 15th first-class ton and the first this season. His 185 ball effort comprised 13 fours and a six.
He shared a 159-run stand with Harpreet (105), who brought up his second century of the season and ended the tournament as his team's leading run-getter with 750 runs in 15 innings.
However, it was not enough to stop 40-time champions Mumbai, entering another final with contributions from Suryakumar Yadav and Aditya Tare, who hit tons on day four to take the team to 426 in their second innings.
Shreyas Iyer scored a 90 and 58 in the game with another notable performance coming from pacer Balwinder Sandhu, who took five wickets in the first innings.
Mumbai 371 and 426 (Aditya Tare 103, Suryakumar Yadav 115, Abhishek Nayar 73; Ishwar Pandey 3/103).
Madhya Pradesh 227 and 361/5 in 109 overs (Naman Ojha 113, Harpreet Singh 105).