The 25-year-old underwent a medical at White Hart Lane on Tuesday.
Kranjcar’s contract with Pompey was set to expire next summer.
“We are delighted to announce that we have reached an agreement with Portsmouth for the transfer of Niko Kranjcar to the club, following the player successfully completing a medical examination and agreeing personal terms,” read a statement on Tottenham’s official website.