The result adds to the majority of Peter Malinauskas' government and is a blow to the Liberals and new Opposition Leader Vincent Tarzia after the party suffered a by-election loss in Dunstan earlier in 2024.
Labor's Alex Dighton had a vote of 60 per cent against the Liberals' Amanda Wilson, two-candidate preferred, at the close of counting on Saturday night.
Congratulations to the newest member of the Parliamentary Labor Party and the new Member for Black Alex Dighton — SA Labor (@alpsa) #saparli pic.twitter.com/nQDg1P0KO6November 16, 2024
Mr Tarzia conceded defeat, telling the party faithful that "unfortunately it hasn't been our night" after Labor's "effective, short, hard" campaign.
He said voters had sent the Liberals a message, and to win the 2026 election "there's only one way forward, and that is to be better".
"We've got to be better, we've got to be united, we've got to be focused, we've got to be disciplined and we've got 16 months to turn it around," Mr Tarzia said.
Saturday's poll was called after Speirs quit parliament in October after being charged with drug offences.
Labor stuck with Mr Dighton for the mortgage-belt seat after fielding the high school teacher against Speirs at the 2022 election.
Mr Dighton cut the Liberals' two candidate-preferred margin by several points to 2.7 per cent in 2022, and was projected on Saturday to gain a swing of 13 per cent against his Liberal opponent, Holdfast Bay mayor Ms Wilson.
Labor's win is only the second time an SA government has taken a seat from the opposition at a by-election in more than 116 years.
The first was in March, when Labor's Cressida O'Hanlon narrowly won the seat of Dunstan after former Liberal leader Steven Marshall resigned from parliament in February.
David Speirs appeared in court on drug charges on Friday. (Matt Turner/AAP PHOTOS)
Speirs was state Liberal leader until August when he announced he was stepping down because he had had was "gutful" of leadership speculation.
In October, he said he was quitting parliament after revelations he had been charged with supplying a controlled substance.
Speirs made his first court appearance on the day before the by-election, and he is scheduled to appear again in March.