Jake Gyllenhaal got "punched in the face" by Conor McGregor on the set of 'Road House'.

The 43-year-old actor - who plays Elwood Dalton, an MMA fighter-turned bouncer in Doug Liman's movie remake - was impressed by the charisma of the real-life UFC champion during filming, but things almost went wrong when they were rehearsing a fight scene off camera.

Praising Conor, who plays antagonist Knox, he said on SiriusXM's 'The Howard Stern Show' “I think he’s just so charismatic."

Howard noted: “He would scare me - even acting."

Agreeing he was nervous ahead of their first fight scene, Jake said: “In that moment, I was like, ‘I’m about to get head-butted by Conor McGregor - what’s gonna happen?’

"[We were rehearsing]. It was like three in the morning and … he just clocked me, right in the face.

“I wish it was on film, but it wasn’t.”

The DJ laughed: “Jake, there’s no such thing as a mistake."

Jake spent nearly a year training and dieting for the role, but he admitted he had previously learned a lesson while doing similar preparation for his 2015 boxing movie 'Southpaw' as he spent so much time trying to become a boxer, he had lost sight of what he needed to do as an actor, a problem identified by his acting coach, Penny Allen.

He recalled: “She said, ‘My dear, you’ve lost your imagination.'

“Obviously [if] you’re playing a boxer, you want to get in shape, you want to put your body through that—I like that stuff—but in the end the fun of acting is … just playing. Have fun.

“I think I’ve gotten to a place where, if you can learn something, and it brings you joy, and it can be joyful to the people around you, then let’s do that.”