The Scottish actor was filming the TV series in Oxford when he was bitten by the dog called Ollie on his left calf.
He was treated by an on-set medic before later being given a tetanus injection by a GP at a local medical centre.
The dog has been dropped from the production and replaced by a computerised version to avoid any future incidents.
A source told the Mail on Sunday: “Clearly the dog didn’t have enough lunch. David was not happy. He yelled.”
“We thought it was part of the take. He held his leg and the dog was just going for him. The trainer had to pull him away. He’s a sweet little dog, but with a vicious side. The rustling of David’s trousers seems to set him off.”
The publication also reported that it wasn’t the first time the dog had turned vicious.
“He nipped a member of the crew about three weeks ago, but didn’t cause injury. We were all a bit scared of him,” the source added.
Tennant plays a demon in the BBC Two series, which also stars Michael Sheen as an angel.
A spokesperson for the fantasy drama said that Tennant suffered “a superficial wound from an on-camera dog and was promptly treated.”
Good Omens is set to arrive on BBC Two in 2019.