She clocked 4:01.99 at Kings Park stadium in the Indian Ocean city to come painstakingly close to breaking former 5,000m world record holder Zola Budd’s national mark.
The 2012 London Olympics 800m silver medalist has been in dominant form this year in her specialist event, boasting a world-best 1:56.64.
She qualified for the Rio Games 400m with a personal best 50.74sec.
“It was good race where I just waited until the last moment to strike and stuck with a plan,” Semenya said of her 1,500m success.
Semenya impressed tactically, staying with the leading group for most of the race before taking the lead with half a lap left.
Former African champion Rabab Arafi of Morocco finished nearly two seconds behind Semenya in 4:03.95 with Ethiopian Anbesa Feyisa third with 4:05.22.
Semenya said the 1,500m was not part of her Rio plan, but did not rule out bidding for a 400-800m double.
“We are not sure yet,” she said. “I would love to do that (bid for a double) but it is up to the coach. I feel good for the 800m.”
Nijel Amos of Botswana, the 2012 London Olympics men’s 800m silver medalist, successfully defended his African title in 1:45.11.
Amos held off a resurgent Jacob Rozani of South Africa, who finished second in 1:45.38. Another South African, Rynardt van Rensburg, came third in 1:46.15.
“I had to push myself because my body was tired and I needed to get out of my comfort zone to win this race. I am feeling positive as everything is coming together,” said Amos.
Botswana also had success in the 400m with Baboleki Thebe and Karabo Sibanda winning the gold and silver medals respectively.
Thebe crossed the line in 44.69sec, Sibanda clocked 45.42sec and Chidi Okezie of Nigeria took the bronze in 45.76sec.