The victim, reported to be in his 30s, was stabbed several times in his upper body and is in critical condition in Shaare Tzedek hospital in Jerusalem. He was expected to go into surgery as soon as possible.
The stabber, who was first identified as a Turkish national visiting Israel, was later identified as a Palestinian man from a village near Nablus. He was shot and killed at the scene by an Israel Police officer.
Parts of the Old City were closed down after the attack.
The attack comes two days after two soldiers were killed and two left in serious condition after a Palestinian car ramming attack in the Northern Shomron.