The Games Of Thrones star admitted that he was "not a good man" as he spoke frankly in the smoking area with the American singer, 47.
The 68-year-old wed his spouse Annie Harris back in 2000, which he said helped him turn his life around.
James C commented: "The majority of my life, before I met my wife, I was not in a good place. I was… not a good man."
The actor continued: "I've been violent in the past. When I met my wife that changed, and when my son came along that changed everything, because I understood what I was here for.
Celebrity Big Brother 2017: James Cosmo said he didn't used to be a nice man
Celebrity Big Brother 2017: James Cosmo said his wife changed everything
Celebrity Big Brother 2017 highlights
Tue, January 17, 2017
Celebrity Big Brother 2017: The best bits from the latest series including all the arguments, kisses and Tony the Pony.
1 of 14
Celebrity Big Brother viewers were surprised to hear Kim Woodburn urging Chloe Ferry to become an escort
I was not in a good place. I was not a good man.
Get Quotes on Home Insurance
"Getting to my age gives you a sort of perspective on how life should be lived and what the important things are."
James C's honesty comes amid his argument with Heidi Montag and Spencer Pratt, who were left fuming after he gave them an "eternal nomination" at the weekend.
"There’s no excuse for what he did," the reality star, 33, previously vented after his new enemy was given a pass to the final.
Celebrity Big Brother 2017: James Cosmo spoke candidly about his past
Celebrity Big Brother 2017: James Cosmo opened up to Stacy Francis
"He knows what he’s doing! I’m fuming that Kim [Woodburn] didn’t get that! It’s unacceptable what he just did," Spencer went on.
"We look worse than Kim to you? You’d rather have that horrible lady in here than us? It’s crazy! I can’t stand that lady," he fumed.
Ahead of tomorrow night's eviction, all housemates exempt from James C, Calum Best and Bianca Gascoigne face the public vote.
Celebrity Big Brother continues tomorrow at 9pm on Channel 5.