The win put the home side top of the table on 63 points, two more than New Zealand's Waikato Chiefs who lost on Friday.
"My nerves were shot at the end. Games between the Bulls and Sharks always seem to come down to one point," home captain Dewald Potgieter told reporters after a bruising encounter.
Substitute scrumhalf Jano Vermaak scored a try six minutes from the end and Morne Steyn's conversion saw the Bulls triumph after trailing 19-13.
Vermaak's quick break came after a period of pressure from the Bulls who suddenly broke free after the Sharks had pinned them back for most of the second half.
Pat Lambie put the Durban-based franchise ahead after a break by winger Lwazi Mvovo in the eighth minute.
Bulls got their first try in the 25th minute after a clever crossfield chip by Steyn sent winger Bjorn Basson over.
Two penalties from Lambie after the break put the Sharks ahead by one point six minutes into the second half before Butch James's chip and a perfect bounce sent Odwa Ndungane over for a second Sharks try.
Lambie missed two penalties and a conversion that would have given the Sharks a more comfortable lead and in the final minute Riaan Viljoen missed a penalty.