In May, a lower court convicted him of culpable homicide and sentenced him to five years in jail for driving over and killing a man sleeping on a pavement.
But the appeals judge ruled there was not enough evidence.
Khan is one of Bollywood's biggest stars, appearing in more than 80 Hindi films, and has a huge fan following.
It was only when the judge insisted that Salman Khan must be present before the verdict was read out, that the actor hurried to the court in south Mumbai on Thursday, the BBC's Yogita Limaye reports from Mumbai.
"The appeal is allowed and the decision of the trial court is quashed and set aside. Salman Khan is acquitted of all charges," news agency AFP quoted the Bombay high court judge Anil Ramchandra Joshi as saying.
The prosecution "failed to establish [the charges] beyond reasonable doubt", the judge added.
The actor, surrounded by his family members, broke down after hearing the verdict, the Press Trust of India reported.
Thursday's verdict is the latest twist in a case that began 13 years ago when Khan's Toyota Land Cruiser car veered off the road, killing one man and seriously injuring four others.
During his trial in the lower court, Khan had argued that his driver had been behind the wheel, but the judge said it was the actor who had been driving under the influence of alcohol.
Now the high court has said that key evidence - including testimony from a policeman who has since died - was not reliable.
The prosecution is likely to challenge the verdict, reports say.
September 2002: Salman Khan's car runs over five people sleeping on a Mumbai street, killing a homeless man and injuring four others
October 2002: Khan charged with culpable homicide not amounting to murder - arrested but granted bail
May 2003: Court rejects his plea to drop culpable homicide charge
June 2003: Bombay high court drops culpable homicide charge; Khan is then tried for rash and negligent driving
October 2007: Prime witness, a constable who served in his security detail, dies
March 2015: Khan tells the court he was not drunk and his driver was behind the wheel