He lamented the suffering of the people in the civil war, saying a “black cloud” of pain engulfed every corner.
Mr Assad also set out a plan involving a national dialogue conference and a referendum on a national charter.
The UN estimates that more than 60,000 people have been killed in the uprising, which began in March 2011.
‘No place for joy’
The speech was Mr Assad’s first public address since June.
Mr Assad said Syria had not rejected diplomatic moves but insisted it would not negotiate with people with “terrorist” ideas.
Assad: “Anything agreed should be based on the decision of the people”
His speech was interspersed with applause and chants from defiant supporters in the opera house in central Damascus, and at the end he was mobbed on the stage.
Mr Assad said the opposition against him was not a revolution.
“That would need thinkers and be based on an idea,” he said. “It needs leadership – who is the leader of this revolution?”
Mr Assad accused the rebels of stealing wheat from the people, depriving children of school and cutting off electricity and medical supplies.
The most recent performance advertised on the Damascus Opera House website is for an evening of choral music conducted by the Russian Victor Babenko last May.
Mr Assad repeated the two principal lines of argument that he has employed since the start of the conflict in March 2011 – the opposition is led by foreign terrorists and must be defeated; his own administration is willing to carry out reforms.
The most lasting image from Mr Assad’s appearance may come from the moments after his speech. Dozens of supporters surged towards the president – almost prefiguring the frenzy that might happen if the opposition got to him. The president waved, and struggled to leave the stage. For Syria’s opposition, that is the entire problem.
He said: “Suffering is overwhelming Syrian land. There is no place for joy while security and stability are absent on the streets of our country.”
Mr Assad called on every citizen to defend the country according to their means.
“We are now in a state of war in every sense of the word. This war targets Syria using a handful of Syrians and many foreigners. Thus, this is a war to defend the nation.
“The nation is for all and we all must protect it,” he said.
Mr Assad set out a series of steps he said would provide a solution to the crisis:
- Outside powers to stop arming what he called “terrorist groups”
- The army would then halt military operations, while reserving the right to defend state interests
- The government would then contact what he termed “Syrian individuals and political parties” to engage in a conference of national dialogue
- The conference would try to establish a national charter that would be put to a referendum, leading to parliamentary elections and a new government
The BBC’s James Reynolds says the president’s latest words are unlikely to persuade any in the opposition that he is ready to discuss a viable transition.
The opposition Syrian National Coalition (SNC) quickly dismissed Mr Assad’s proposals.
Spokesman Walid Bunni told Reuters his group would accept nothing less than the departure of Mr Assad and his government.
UK Foreign Secretary William Hague accused President Assad of hypocrisy, saying “the empty promises of reform fool no-one”.
EU foreign policy chief Catherine Ashton’s office said the union would consider “if there is anything new in the speech”, but added: “We maintain our position that Assad has to step aside and allow for a political transition.”
Mr Assad’s last public comments were in November, when he told Russian TV he would “live and die in Syria”.
But rebel efforts to gain ground in and around major cities including Damascus have been met by stiff resistance and increasingly destructive air strikes.
The UK-based activist group, the Syrian Observatory for Human Rights, reported fresh violence overnight into Sunday, saying that troops had bombarded rebel positions on the outskirts of Damascus, including in Beit Saham, near the airport road.