Kitson slotted home from six yards in the 73rd minute after excellent play from strike partner David Nugent, who then won a penalty which Halford converted in injury time after he was fouled by Leon Barnett.
The Norwich defender, who this week agreed a permanent deal on a three-and-a-half-year contract when the January transfer window opens, was sent off for a second booking as a result to cap a miserable day for the home side.
Portsmouth were also indebted to goalkeeper Jamie Ashdown - who had a loan spell at Norwich in 2006 - after he pulled off several fine saves as City's six-game unbeaten run came to an end.
Source: PA