Police said all charges were linked in a "continuous" spree.
Chase across South Island
The action began early on Saturday in Invercargill, when the 40-year-old alleged offender was disturbed breaking into a commercial premises in Invercargill and fled.
Police said he evaded officers, but they later learned he was near Winton, heading towards Queenstown on State Highway 6.
Police monitored his location but were not in pursuit of the vehicle for the entire distance.
They eventually slowed his escape with road spikes near the Kawarau bridge.
A bystander said he saw the car go "flying"along the bridge before doing a "big swerve" once it was spiked.
The wanted man's Honda sedan limped to the BP petrol station in Frankton Rd.
Garston man Jonathan Edmonds was in the petrol station's shop when his family ski trip took an unexpected twist, as the man sought by police attempted to make a getaway in his vehicle.
"I seen him running across between the pumps and [he] jumped in the passenger's side of my car, in the front. I saw him climbing across, and at that point I went running out of the BP and ... tried to pull him out, but he had the car going."
After a tussle, Mr Edmonds hauled the man out of his vehicle.
"So I turned the car off, got the keys out, managed to get the door open, pulled him out, and that's when he ... came out in front of the cops, then detoured into the BP, running in front of my kids.
"He yelled and threatened as he ran past my kids that he had a gun."
Mr Edmonds said his only thought upon seeing the wanted man attempt to steal his vehicle was: "What the hell are you doing in my car?
"So I just ran out there to drag him out.
"Didn't really think about it; just reacted."
The man locked himself inside the service station's toilet as armed police arrived.
A large number of people milled nearby, having been evacuated from nearby shops, as a helicopter hovered overhead.
A BP staff member said four staff members took cover in a "safe room" inside the service station.
Armed police and officers from the police negotiation team arrested the man about half an hour later.
The man was charged with three counts of unlawfully taking a motor vehicle, seven of burglary, three of theft, one of robbery, one of reckless driving, one of failing to stop when required, one of refusing officers' request for blood and one of attempting to unlawfully take a motor vehicle.
He will appear in the Invercargill District Court today.