South Africa has named Nelspruit, Rustenburg, Port Elizabeth, Durban and Johannesburg are the host cities for the 2013 Africa Cup of Nations.
The decision means that Cape Town Stadium, built for the 2010 World Cup, will not be used for the tournament.
Johannesburg's FNB Stadium, formerly known as Soccer City and the venue for the World Cup final, will host only the opening match and the final.
Bloemfontein and Polokwane had also made bids to host.
The host cities should have been announced at the beginning of April but the news was delayed by negotiations over financial issues.
A news conference to make the announcement was postponed from Thursday, with the decision being revealed on Friday by the South African minister of sport and recreation, Fikile Mbalula.
"Rather than using the whole of the republic we have reduced to a total number of about four, five stadiums so that they are close to each other," Mbalula said.
The South African government has committed to helping with covering the costs of the host cities.
"On relieving the financial burden for host cities, there's a joint task team... which will meet with the host cities individually to allay fears," the minister said.
"I don't want to speculate on what the budget would be, but I can guarantee that the government and other private sections will come to the party and we will pursue negotiations with Caf [the Confederation of African Football] to make sure local private sector come on board as sponsors."
Cape Town will host matches during the 2014 African Nations Championship, the tournament for national teams of locally-based players, along with Bloemfontein, Polokwane and Kimberley.