And then Baroda had the hosts and 41-time champions on the ropes at 102 for 4, with Mumbai needing 302 runs more to avoid an embarrassing innings defeat in their landmark 500th Ranji game.
Overnight not out on 63 in a team score of 376 for four in reply to the hosts' meagre 171, Swapnil ground the hapless Mumbai attack relentlessly during a stay of five minutes under seven hours as Baroda reached 575 for 9 before applying the declaration at the Wankhede Stadium.
The bearded Swapnil, bowling left arm spin, then produced a ripper to clean bowl young Mumbai opener Prithvi Shaw for 56, the ball pitching outside the leg and zooming to tilt the middle stump as the batsman offered a defensive shot.
Mumbai, faced with the daunting task of preventing an outright defeat, lost Captain Aditya Tare for 5 earlier and then surrendered two more wickets in fading light before Ajinkya Rahane (28) and Suryakumar Yadav (2) prevented further loss.
Apart from Tare and Shaw, Mumbai had lost Shreyas Iyer (8) and the promoted Vijay Gohil (0) in an extended day's play and are staring at a massive defeat on the final day.
The third day's play belonged almost entirely to the 26-year-old, UP-born Swapnil, who had made his debut in first class cricket 11 years ago as a boy just short of his 15th birthday, which also made him the youngest ever Indian first class cricketer.
His highest score, in 42 games before today, was 95 and he finally reached the three-figure landmark with a single off left arm spinner Vijay Gohil in 242 balls and 315 minutes.
Swapnil, in the company of the lower order, ensured that Baroda who lost two early wickets within half an hour in the morning, did not allow Mumbai even a whiff of a chance to come back in the game.
Swapnil first added 63 runs for the seventh wicket with Atit Sheth, who made 25 on top of his five-wicket haul in the Mumbai innings. He then put on 109 runs in 121 minutes with Sagar Mangalorkar (43 not out) against the tired home side attack for the 9th wicket.
The two-down batsman was finally out, after hitting four sixes and ten fours, as he charged out to Dhawal Kulkarni with the third new ball in hand and was caught off the leading edge at deep point.
By then, Baroda had advanced to 463 and they declared soon afterwards to try and push for an outright victory.
Mumbai lost skipper Tare cheaply as he edged left arm seam bowler Lukman Meriwala, who grabbed five wickets in the first innings, to 'keeper Mitesh Patel in the sixth over.
Exciting new talent Shaw, who made a duck in the first innings, batted fluently to complete his second half century in 54 balls, studded with seven fours and a six, to add to his four tons in his sixth game.
Shaw looked in good touch when Swapnil bowled a dream ball to beat him all ends up and send him back with 12 overs left for stumps.
Then Iyer, out to a poor shot in the first essay, repeated his folly by trying to slog a short ball dug in by Sheth, the first innings destroyer, from outside the off and skied the ball to square leg to depart with stumps approaching.
Kartik Kakade then dismissed Gohil, promoted to see off the day, to leave Mumbai tottering at 99 for four before Rahane, after a stay of 117 minutes, and Yadav held fort till close.
Mumbai 171 and 102 for 4 (Prithvi Shaw 56, Ajinkya Rahane batting 28, Suryakumar Yadav batting 2). Baroda 575 for 9 decl. (Aditya Waghmode 138, Vishnu Solanki 54, Swapnil Singh 164, Sagar Mangalorkar 43; Dhawal Kulkarni 2 for 79, Shardul Thakur 3 for 95, Vijay Gohil 2 for 177).
First Published: November 11, 2017, 6:14 PM IST