Police said the suspect was detained after armed officers and a negotiator arrived at the scene. They had earlier said that one person was hospitalized with injuries not believed to be life-threatening, while an unidentified number of petrol station workers were unharmed and hiding in a safe room.
BBC Bristol reported that shots had been fired, after which police escorted a handcuffed man into an ambulance.
Hits Radio Bristol said its reporter on the ground heard loud bangs and saw flashes of light inside the station. He said police may have been using stun grenades.
The road near the petrol station was closed, and residents were urged to avoid the area.