Jason Townsley, 35, of Luncarty, Perth and Kinross, said he lost control when the two men kept making jibes about the poor quality of his singing during a pub karaoke evening.
The father-of-three leapt from the stage area and shoved David Ferrie causing him to stumble backwards, before headbutting Mark Thomas.
Yesterday at Perth Sheriff Court, Townsley admitted two charges of assault at the Auld Hoose public house in Perth on September 28 last year.
Townsley said: "They were making a pure fool of me and then I was the one who was charged. I was out with my partner, and couldn't believe what they were trying to do.
"I know this is no excuse for my actions. I just got angry. I hope you will be as lenient as you can on me. I have no record of any kind. I have never been in trouble and I am a family man."
He admitted assaulting Mr Ferrie by pushing him on the body, and attacking and injuring Mr Thomas by butting him on the head.
Townsley was fined £200 and ordered to pay £400 compensation to Mr Thomas.
The court was not told what he was singing in the karaoke.