He slipped, fell on the tracks and got hit by an onrushing train, Lars-Erik Hedberg of the Södermalm police told Radio Stockholm.
He probably died instantly, said Hedberg.
"The air pressure from the approaching train could have contributed to him losing his balance," Jonas Palm of the Stockholm police told news agency TT.
Police suspect the 21-year-old could have been drunk.
His friend said it was not a suicide, reported Radio Stockholm.
An investigation is underway but police do not suspect any criminal act. The current assumption is that it was an accident and that the man was not pushed.
Hedberg said he was not aware of any witnesses having been called for questioning.
Story continues below…
The subway train was evacuated after the accident and traffic was temporarily halted.
The 21-year-old man lived in south Stockholm.
TT/The Local/nr Follow The Local on Twitter