Opening batter Ruturaj Gaikwad carried on his hot streak of form, his century helping Maharashtra beat Assam by 12 runs in a high-scoring contest to reach their maiden Vijay Hazare Trophy final.
In the summit clash, they will take on Saurashtra, who scored a comfortable five-wicket win over Karnataka in the other semi-final.
Gaikwad, Bawne power Maharashtra to final
Ruturaj Gaikwad, who had hit a world-record seven sixes in an over during his unbeaten 220 in the quarter-final against Uttar Pradesh, followed up that performance with 168 off 126 deliveries in the semi-final against Assam.
The Maharashtra captain smashed 18 fours and six sixes as he scored his third century in four games in this edition of the Vijay Hazare Trophy. Ankit Bawne also scored a century - 110 off 89 deliveries - as he and Gaikwad took Maharashtra to a formidable score of 350 for 7.
It was the 11th hundred for both batters in the Vijay Hazare Trophy, taking them level with Robin Uthappa for the most tons in the history of the tournament. While Uthappa played 80 matches in the Vijay Hazare Trophy, Bawne got his 11th century in his 76th game and Gaikwad in just his 42nd.
Assam got off to a poor start in the chase, with opener Rahul Hazarika out lbw to medium pacer Manoj Ingale in the second over.
His fellow opener, the Assam captain Kunal Saikia, struggled for runs and was dismissed for 10 off 27, but No. 3 Rishav Das ensured they did not fall too far behind the asking rate with his rapid half-century.
But when Rajvardhan Hangargekar dismissed the in-form Riyan Parag in the 15th over, thanks to an excellent diving catch by Gaikwad, it looked like Assam were in big trouble. Things got worse for them when Das fell for 53 in the next over, with the scoreboard reading 103 for 4.
However, Sibsankar Roy and Swarupam Purkayastha put on 133 runs for the fifth wicket, with Roy playing aggressor. When Roy fell for 78 off 63, Purkayastha took charge and kept Assam's hopes alive.
After Hangargekar gave Maharashtra another big breakthrough by dismissing Purkayastha for 95, Avinov Choudhury still threatened to take Assam to an unlikely victory, but his 14-ball 19 was not enough as Maharashtra completed a 12-run win to reach the final.
Unadkat runs through Karnataka
Saurashtra captain Jaydev Unadkat took 4 for 26 in ten overs to spearhead his team's victory against Karnataka at the Narendra Modi Stadium in Ahmedabad.
He took the wickets of Mayank Agarwal and BR Sharath inside the first 10 overs, came back later to dismiss Shreyas Gopal for a duck, and then ensured Ravikumar Samarth did not give Karnataka a strong finish as Saurashtra bowled them out for 171.
Samarth fought a lone battle for Karnataka with his gritty 88 as wickets tumbled around him. Manoj Bhandage's 22 was their next best score as only four Karnataka batters managed to go past 10.
Saurashtra's chase got off to a nervy start as openers Harvik Desai and Sheldon Jackson fell for ducks, leaving them two down for zero. But Jay Gohil expertly anchored the innings, with Samarth Vyas and Prerak Mankad making handy contributions.
Gohil first put on a 75-run stand with Vyas, who was bowled by Krishnappa Gowtham for 33. Mankad then made a rapid 35 before Gopal got the better of him. Gohil was eventually stumped down the leg side off Gowtham for 61, but Saurashtra were in command by then.
Arpit Vasavada and Chirag Jani sealed victory with no further hiccups, as Saurashtra made it to their third Vijay Hazare Trophy final with the five-wicket win.
At the post-match presentation, Unadkat was named Player of the Match but he invited Gohil to take the award, praising him for the way he batted them out of trouble from 0 for 2.
Saurashtra and Maharashtra will now face off in the final at the Narendra Modi Stadium on Friday.