The right-arm seamer made amends for the disappointment of first day and picked six for 75 to rip through the Mumbai middle order and put the hosts back on track.
The visitors, resuming at a healthy 261 for three, were bowled out for 361 half an hour after lunch.
At stumps on second day, Railways were sitting pretty at 111 for three with Tejinder Pal Harvinder well set on 37 and Shreyas Khanolkar on 20.
Harvinder made the second new ball tell as he claimed the wickets of Vinod Kambli and Ramesh Powar in the space of five balls, with only two runs added to the overnight score, to rattle Mumbai.
He then returned after lunch to dismiss wicketkeeper batsman Vinayak Samant (32) and Avishkar Salvi.
J P Yadav (2-67) lent the right support from the other end while captain Sanjay Bangar scalped his Mumbai counterpart Sairaj Bahutule (29) who added 31 vital runs with Ajit Agarkar for the seventh wicket.
On the opening day, Harvinder had dug in frequently and let go the morning moisture unutilised. Today, his teammates and he kept the ball up and let it swing.
As it were, wicketkeeper Sudhir Wankhede had five catches to his name at the end of the innings.