Chris Rickard, 49, said he was walking his blue heeler, Rocky, on Sunday morning when they surprised a sleeping kangaroo in Arthur's Creek northeast of Melbourne. The dog chased the animal into a pond but it then turned and pinned the pet underwater.
When Rickard tried to pull his dog free, the kangaroo turned on him, attacking with its hind legs and tearing a deep gash into his abdomen and across his face.
"I thought I might take a hit or two dragging the dog out from under his grip, but I didn't expect him to actually attack me," Rickard told The Herald Sun newspaper. "It was a shock at the start because it was a kangaroo, about 5 feet high, they don't go around killing people."
Kangaroos rarely attack humans but will fight if they feel threatened.
Dogs often chase kangaroos, which have been known to lead the pets into water and then pin them underwater as a means of defense.
Rickard said he ended the attack by elbowing the kangaroo in the throat, adding Rocky was "half-drowned" when he pulled him from the water.