Zimbabwe striker Benjani's protracted move from Portsmouth to Manchester City has been resolved with Pompey to receive an initial fee of £3.87m.
The 29-year-old has signed a two-and-a-half year deal with City after passing a medical on Monday.
If Benjani makes 75 senior starts Pompey will receive a total of £7.6m.
"I'm delighted we have signed such a quality player, and I am looking forward to working with him," said City boss Sven-Goran Eriksson.
The on-off transfer saga had been in doubt after City tried to pull out of the deal, expressing concern about a knee injury Benjani had surgery on 18 months ago.
City said the striker had arrived in Manchester too late to complete the deal before last Thursday's midnight transfer deadline.
Pompey called in the Premier League and, upon examining the relevant paperwork, officials were satisfied that the deal had been completed by the close of the transfer window on 31 January.
BBC SPORT | Football | My Club | Man City | Benjani completes Man City move