Police Lieutenant Colonel Kittikan Saengboon, 51, was taken to hospital for treatment of his wounds, the Metropolitan Police Bureau (MPB) announced.
The 24-hour drama began around noon on Tuesday when he started firing shots into the air from his house on Soi Jiramakorn.
Kittikan, a Special Branch inspector with a reported history of mental illness, had continued to discharge his weapon overnight.
Residents in the neighbourhood have been evacuated.
Police fired 20 tear gas canisters at the house in the early hours of Wednesday but failed to smoke him out.
Almost 20 hours of negotiations with the gunman came to an abrupt halt early on Wednesday morning when a Special Ops unit lobbed stun grenades into the house.
At 6.20am, the unit managed to gain access to the second floor of the house but was unable to reach Kittikan, who had locked himself in a room on first floor.
At 8.30am police armed with rubber-bullet guns gathered in a nearby soi to infiltrate the house from the side. Meanwhile negotiators continued to ask the suspect to put down his weapon and surrender.
Police also played Thai folk songs on loudspeakers in an attempt to calm the suspect down. A shot fired from the house reportedly hit a Special Ops policeman in the street but deflected off his helmet and left him unhurt.
At 11.25, TV reporters at the scene said police had gained access to the first floor.
Kittikan was then shot and disarmed by police commandos at 12.10pm, according to the MPB. As of press time, his condition is unknown.