The 49-year-old made the announcement while appearing on The Late Show With Stephen Colbert.
Craig was met with rapturous applause as he replied “yes” when the US presenter asked if he will play the next Bond.
He said he believes the film, which is due out in 2019, will be his final time as the agent.
He added: “I think this is it. I just want to go out on a high note and I can’t wait.”
Craig said he “couldn’t be happier” over the announcement and addressed the time he told an interviewer he would rather “rather slash my wrists” than play the agent again.
He said: “There’s no point in making excuses about it but it was two days after I finished shooting the last movie. I went into an interview and someone said, ‘Would you do another one?’
“Instead of saying something with style and grace, I gave a really stupid answer.”
Within the last few days he has been saying no deal had yet been struck over the next 007 instalment but he told Colbert he had known for a “couple of months”.
He had told US radio station Magic that he would “love to do it” but was weighing up “personal decisions”.
Craig has so far appeared in four Bond films - Casino Royale, Quantum Of Solace, Skyfall and Spectre.