Craddock's move will officially go through when the striker's contract at Oxford expires on July 1.
The 26-year-old arrives at Fratton Park with an impressive goal record, having netted 28 goals for Oxford and 34 for Luton in the last four seasons.
"If you want to be promoted from one league to another then you have to bring in goalscorers and that's what we have got with Tom," Pompey boss Guy Whittingham told the club's official website.
"He's a player that has a good ratio and we believe, along with a couple more players we are trying to bring in, he will do well for us.
"I've watched Tom and he has a great work ethic. If he is not scoring goals he will keep going and be a right pest to defenders in League Two."
Craddock is looking forward to his move to the south coast and added: "Despite being born in the north-east, a member of my family is from Portsmouth so I know a lot about them. I also played with Simon Eastwood and he told me I could not be joining a better club and what a great one it was to play for.
"It excites me greatly that, if we are doing well, we are likely to be playing in front of 15,000-plus crowds, which is phenomenal for League Two and just about sums the club up.
"Obviously the manager has brought me down to score goals. I've pretty much done that regularly and hopefully I can bring them here as well."
- Sports & Recreation