Ganesh Joshi, a legislator from the northern state of Uttarakhand, allegedly beat the animal with a stick.
Veterinarians performed a four-hour operation on the horse, named Shaktiman, and said they were able to save his leg.
A case has been lodged against Mr Joshi, who denies he hit the horse.
"The footage which the electronic media is showing by linking with an old clip - in which I am lifting a stick in front of the horse - has no connection at all [to the incident]," Mr Joshi told the BBC.
"The horse fell down when someone pulled its saddle and the animal sustained a fracture on its leg," he added.
The incident took place near the legislative assembly in the state capital, Dehradun, on Monday when the BJP was holding a protest against the Congress party-led state government.
Vets were quoted by Indian media as saying that Shaktiman would now have to be monitored for infection.
A veterinary officer said they would know if the surgery was a success only once the horse had recovered.
However, the 13-year-old animal's police career is most probably over, reports say.
The incident caused outrage in India with many taking to social media to express their anger.
On Twitter, the hashtag #IsHorseAntiNational - prompted by a tongue in cheek newspaper headline that read, "BJP MLA beats up a horse. No confirmation whether the horse was anti-national" - was trending for most of Tuesday.
A police horse that suffered leg fractures after allegedly being assaulted by an Indian politician is recovering, reports said.