The Kerry actor is known for going to great lengths to prepare for his onscreen roles in a string of critically acclaimed films.
He lost 40 pounds to take on the role of Bobby Sands in Hunger, but he told the Graham Norton Show how his action hero roles are the most physically demanding.
The Oscar-nominated star said his toughest task was the extreme training for his role as a Greek warrior alongside Gerard Butler for the fantasy action movie 300.
He said: “I did seven- minute circuits and had to eat almonds and cottage cheese. It was pretty full on for 10 weeks and competitive.
“It was brutal and you’d see an exercise and feel physically ill. By the end you would be spent.”
The Killarney star said he had to go into another physically demanding training regime to prepare for his latest blockbuster role in X Men alongside Hugh Jackman.
But he said the Australian actor spurred him on to complete his workouts every morning on set.
He said: “His discipline is incredible. He is up and in the gym at 4.30 in the morning, every morning.
“When we arrived there was a ‘Jackman’ effect and we all started training to try and keep up.”
He said he was delighted to be taking on the role of a young Magneto in X-Men: First Class and joked that he stole all his acting tricks from Ian McKellen who plays the older Magneto in the blockbuster.
“I stole everything from him. I actually didn’t get to do a scene with him but I spent a lot of time watching him on YouTube giving a workshop on Shakespeare.”
He also told how working with the director of 12 Years A Slave and Hunger, Steve McQueen, has changed his life.
He said: “I owe everything to him. He literally changed my life.”
When asked by Norton if he had heard the director gets jealous when he sees Michael in other films, he said: “I have heard that — it’s sweet.”
He said he always wants to be involved in films with the English director at the helm.
He said: “I would never [have] presumed I would get a part, but there would be a little twinge if I saw a film Steve was doing that I wasn’t in.”
* The Graham Norton Show will air on BBC One tonight at 10.35pm