Several people, including at least two policemen and a security guard, opened fire at the man driving the bulldozer.
Traffic came to a halt as hundreds of people fled through the streets.
At the scene of the attack, injured people lay on the ground amid piles of
broken glass and blood stains on the ground.
Yeroham Mendola, a spokeswoman for the Magen David Adom emergency services, said: "We have four people dead so far, including the driver of the earthmover, and 45 wounded, three of them seriously."
|Rescuers found a woman's body under a car crushed by the bulldozer [AFP]
Seven of the wounded are reported to be in a serious condition.
A state of emergency was called in Jerusalem soon after the attack.
Rosenfeld said the authorities had received no specific warnings about an impending attack.
"The terrorist is an Arab who lives in east Jerusalem and is known by our services for his criminal activities," Rosenfeld told the AFP news agency.
Soon after the attack, Ehud Olmert, the Israeli prime minister, asked his cabinet to look at the possibility of demolishing the home of the bulldozer driver, Israel's Haaretz reported.
Shmuel Aboukiya, a security guard who worked at a nearby bank, shot the driver.
"I saw the tractor ramming into a car on Jaffa street, people started to shout and I came out of the bank and I saw the truck. I shot the driver and the truck stopped," Aboukiya said.
Eleanor Nachum, an Israeli policewoman, said she fired two rounds at the bulldozer while it was still moving.
|Seven of the wounded are reported to be in a serious condition [AFP]
"I saw the tractor coming around into the bus, I fired two shots at the windshield of the tractor and I think I hit him. Two policemen jumped on the tractor, but he continued driving," she said.
Two hours after the incident, rescue workers said they had pulled the body of a woman from a car that they had found crushed beneath the bulldozer.
A group calling itself the Imad Mughnieh unit of the Brigades of the Liberators of the Galilee claimed responsibility for the attack.
However, the credibility of the claim could not be immediately established.
"Police say he [the bulldozer driver] had a criminal record, but no known affiliations to any other group. This seems to be the action of one individual," said David Chater, Al Jazeera's correspondent in Jerusalem.
"Police are working on the theory that this man was acting alone."
Relatives and police named the driver as Husam Tayseer Dwayat, a 30-year-old construction worker from Sur Baher, in east Jerusalem.
|The bulldozer driver has been named by relatives as Husam Tayseer Dwayat
Sources have told Al Jazeera that Dwayat's employer owed him a large sum of money in backpay, which could have triggered the attack.
Chater said Dwayyat had been involved in the construction of the Jerusalem light railway system.
The light railway system connects west Jerusalem to settlements in the occupied West Bank. The project is controversial with many Palestinians and many people consider it to be a means to expand Israeli control.
Hamas, which rules Gaza, called the attack "the natural result of continuing Israeli aggression and crimes against our people in the West Bank and occupied Jerusalem".
However, Sami Abu Zuhri, a spokesman for the group said Hamas did not know who was responsible for the attack.
"We do not expect it will influence the Gaza calm," he said, speaking from Gaza.
Ambulances rushed to the scene as police and security guards sealed off the area and pushed bystanders away from the overturned bus, which had leaked fuel into a street gutter.
This is the first attack to take place in Jerusalem since a Palestinian man shot dead eight students in March.