At least seven people were injured as police struggled to bring the situation under control.
Officials said the attackers were disguised as Christian pilgrims when they entered the Basilica of the Annunciation and threw the firecrackers.
The attackers remained barricaded in the church in the Israeli-Arab town late Friday, as several thousand angry protesters blocked police from entering.
Rescue workers said at least two people were wounded in the unrest, and others suffered from tear gas inhalation. Five police officers also were injured, officials said.
Police said the attackers remained inside the church, and the crowd prevented police from entering the building to arrest them. Two or three people were believed to be inside, officials said.
When an ambulance arrived, the crowd attacked the vehicle, breaking windows and forcing it to turn away. Police said special commando units were being dispatched to the scene.
Dan Ronen, the police chief for northern Israel, said the three attackers were Jewish, though a motive for the attack remained unclear. He said his forces were still trying to get the three people - believed to be a man and two women - out of the church.
The church is at the site where Christians believe the Angel Gabriel appeared before the Virgin Mary and foretold the birth of Jesus.
Nazareth, the boyhood town of Jesus, is in northern Israel. It is inhabited by Christian and Muslim Arabs and religious tensions have boiled over in the past, with the two sides in a dispute over attempts to build a mosque next to the church.
Israeli Arabs make up about 20 percent of Israel's population.