Benjani, 32, has been training with Rovers this month following his release from City in June.
Rovers boss Sam Allardyce had admitted concerns over the knee problem the Zimbabwean suffered during a two-year stint at Portsmouth, from 2006-08.
But on Friday the Lancashire club confirmed a one-year deal had been struck with an option to extend it by a further 12 months.
Speaking on Friday, Allardyce said: “Benjani has shown us he will be OK to play for us in the Premier League.”
The Zimbabwe international, who spent the second half of last season on loan at Sunderland before being released by parent club City earlier this summer, began his career with Jomo Cosmos in 1999.
After spending three seasons with the South African side, he moved to Auxerre before joining Portsmouth for £4.1m in January 2006.
The Harare-born forward made over 70 appearances for Pompey before completing a move to Manchester City two years later.
His move to Eastlands almost fell through after City tried to pull out of the deal, expressing concern about the knee injury he had had surgery on 18 months previously.
Allardyce had expressed disappointed with the number of chances his side missed in their opening day 1-0 league victory over Everton, and felt additional firepower was required at Ewood Park.