The No. 70 NJ Transit bus was traveling south on Summit Avenue when the driver hit the 48-year-old Springfield man around 7:04 a.m. as he crossed the street at Union Place, a block from the train station, Capt. Steven Zagorski said.
He was taken to Morristown Medical Center's trauma center, where he was in critical condition Wednesday morning.
Summit Avenue was closed between Franklin Place and Broad Street, as of 8:35 a.m.
Police were investigating the crash and asked witnesses to call them at 908-273-0051.