The 38-year-old Irish actor currently plays Sherlock Holmes' nemesis, James Moriarty, on TV, according to the Daily Mirror.
The news comes amid rumours that Christoph Waltz had also been tapped to play a Bond villain.
"Andrew was hand-picked for a role in the new Bond movie after film bosses loved his star turn in 'Sherlock'. Casting directors thought he was perfect to play a baddie and they wanted to use his existing Sherlock profile - and amp it up to the next level.
"Andrew is hoping the move will see him leap from TV to the big screen, where he can eventually divide his time between London and LA. He knows this is his big break," a source said.