Keegan told the M.E.N: "Eyal came to me in the summer and asked for a contract extension when he still had two-and-a-half years left on his existing deal.
"I explained to him at that time that I couldn't do it but from that point on things went downhill."
Berkovic issued a transfer request, which sparked interest from the south coast, but that was later withdrawn.
But Keegan's relationship with his midfielder was still sour, so when the transfer window opened again, Portsmouth stepped up their interest to secure the deal.
And despite Keegan's protests, Berkovic will be available for his debut against City at Fratton Park tomorrow.
"It would be hard to take if Eyal was to score and we would have preferred it if he didn't play," admitted the City boss.
"Some clubs would have accepted that situation but Portsmouth's injury situation is so dire if we had not allowed him to play it would have broken the deal."
Keegan also explained that he had to cull his squad and the wage bill (Berkovic has now become Pompey's highest-paid player ever).
"Eyal played a lot of games for Manchester City and in some of those he was outstanding but I knew if I was to stand any chance of bringing someone in during the transfer window I needed to reduce the squad and the wage bill. That is what I have done."