Detective Sean Conway says he saw the man, drinking from a bottle and yelling incoherently, at the platform's edge at the Park Street Station at about 2 p.m. Wednesday.
Conway ran up one set of stairs and down another before snatching the man to safety and holding him down.
The next train was several minutes from the station, but the bigger danger was the 600-volt third rail.
Conway tells The Boston Globe the man thanked him before being taken to the hospital. His name was not released.