In his second 100m outing of his final season, the Jamaican was slow out of the blocks before jumping ahead and edging Yunier Perez of Cuba, who ran a personal best 10.09 seconds.
Bolt, the 30-year-old with eight Olympic golds and 13 world championship medals, will make his final bow at the world championships in London in August.
Van Niekerk sets record across four distances
The 30-year-old said he was not happy about clocking over 10 seconds for the second straight race, although he remained confident about the remainder of the season.
"I am not happy with the time but I am just getting to my running," he told the sell out crowd after his ninth and final appearance at the meet in the eastern Czech industrial city.
Usain Bolt after his win.
Image credit: Eurosport
"I will be fine. So there will be no worries."
Bolt has become a regular at the Ostrava meet and his fans showed their appreciation at the end of the night, holding up placards to form the Jamaican flag as Tina Turner's "Simply the Best" played in the stadium.
"The biggest thing is always the crowd... That is why I keep coming back here. You guys are wonderful. Thanks for everything," Bolt said.
With Bolt moving closer to retirement, a number of athletes could be set to emerge from his shadow.
Britain's Mo Farah held on to beat Mathew Kimeli of Kenya in the 10,000m with a time of 27 minutes 12.09 seconds
Bolt loving heat in career sunset trip to Czech Republic for Golden Spike meeting
Tokyo 2020 spotlight - Who will take Bolt’s sprint crown?