Police were alerted to the fight, in Mariatorget in the Södermalm area of the city, at 3.40 am. A shot was fired in the air during the incident, and another man was hit in the face with a gun.
Between seven and eight people were involved in the fight. Three people were seen running from the scene, but nobody had been arrested by Friday morning.
The man with knife injuries was taken to the Södersjukhuset hospital. His life is not said to be in danger, and police have already been able to question him.