The incident took place shortly after 10:00 p.m. Thursday at 10th and Mifflin streets.
According to police, an officer on patrol happened across a stabbing in progress.
The officer ordered the knife-wielding man to drop the weapon and when the man refused, the officer discharged his gun three times, striking the man twice.
The man was shot in the hip and in the right leg.
Medics rushed the suspect, believed to be approximately 23-years-old, to Thomas Jefferson University Hospital for care.
A man in his 20s, the stabbing victim, and a man approximately 50, who was assaulted, were rushed to Hahnemann University Hospital for care. Both are stable.