At least 40 people were killed in the capital, PressTV, the Iranian government broadcaster, reported. Hundreds of people calling for Saleh's resignation were reported injured.
Large demonstrations were held in other cities, including Aden.
The Defense Ministry said the president met with the National Defense Council before announcing the state of emergency.
PressTV said troops opened fire on demonstrators while snipers stationed on rooftops also picked off protesters.
Witnesses told CNN the fighting began after government supporters and anti-government demonstrators threw rocks at each other. Security forces fired their guns into the air and then into the crowd, witnesses said.
Tear gas canisters also were deployed as security forces tried to disperse the crowd, CNN said.
For weeks, protesters, fueled by anger over high unemployment and government corruption, have been calling on President Ali Abdullah Saleh to resign. Thousands of people have protested regularly in Yemen's capital and the cities of Aden, Taiz and elsewhere.
Saleh, in office for 32 years, has said he won't seek re-election in 2013.