Ozzy Osbourne was a "f***ing idiot" to cheat on his wife Sharon.
The 68-year-old rocker split briefly from his spouse - who he married 34 years ago - last year after she discovered he'd been unfaithful, and he has admitted he is not "proud" of the "shock and shame" he caused to the 'Talk' star and their three children.
Asked the secret of their good relationship, he laughed: "Don't get caught with your mistress."
He then added: "It's a rock & roll thing--you rock and you roll. You take the good with the bad.
"When I was a crazy f***er, I'm lucky she didn't walk out. Now I'm coming on five years clean and sober, and I've realised what a f***ing idiot I was.
"I mean, I'm still nuts, but in control of it a bit more...When I said, 'Don't get caught by your missus,' I'm not proud of all that s**t.
"I upset my wife and I upset my family and I made a lot of shock and shame. I love my wife, and it made me realise what a f***ing idiot I've been."
The 'Paranoid' hitmaker admits he and Sharon have explosive arguments and make mistakes, and he doesn't understand couples who claim never to exchange cross words.
He told Rolling Stone magazine: "I suppose it's fair to say we love each other. I love her, and she loves me.
There's no other woman I really want to spend the rest of my life with.
"You make a mistake and you learn by it. She's made a few mistakes, and so have I.
"You know when you hear these people go, 'Oh, we've been married 35 years and we've never had a row.' I go, 'You must have been living in a different f***ing country.
"Sometimes, I've looked at my wife and I've just been angry as f**k, and vice versa. Other times, I go, 'F**k, I love you.' "
Sharon recently claimed Ozzy - who has been receiving treatment for sex addiction - had been unfaithful with six other women.
She said: "Some Russian teenager, then a masseuse in England, our masseuse [in the US], and then our cook.
"He had women in different countries. Basically, if you're a woman giving Ozzy either a back rub or a trolley of food, God help you."