CCTV footage captured the moment the driver allegedly accelerated, pinning a group of people against a wall at the Royal Family Hotel on North Terrace in Port Elliot.
A young man, believed to be a worker at the pub, is fighting for his life and four others are recovering from minor injuries.
Police said the suspected driver left the scene of the crash, which happened at about 1.30am before he returned a short time later.
A 37-year-old man was arrested by police and taken to Christies Beach Police Station, where he’s been charged with causing harm by dangerous driving and leaving the scene of a crash.
A 22-year-old man from Hindmarsh Island was left with serious life-threatening injuries and was flown to Adelaide where he remains in hospital.
Four people were treated for minor injuries, including a 21-year-old man from Goolwa Beach, a 37-year-old woman from Port Elliott, a 20-year-old woman from Inman Valley and a 30-year-old man from Blackwood.
North Terrace in Port Elliot, a beachside town near Victor Harbor south of Adelaide, remained closed for most of the day while police examined the scene.
The driver was refused bail, and will face Christies Beach Magistrates Court on October 8.