All eight matches will be played in either Gauteng or Cape Town to reduce the risk of disruption potentially caused by the ongoing coronavirus pandemic.
Warren Gatland's side starts the trip with a fixture against the Lions in Johannesburg on 4 July (AEST), rather than facing an SA Invitational team, which would have been chosen from players across the country.
The tourists will play three games against provincial opposition in Gauteng before heading to Cape Town, where they will play another two warm-up games ahead of the first Test.
British and Irish Lions, which will be captained by Alun Wyn Jones, will then take on South Africa twice at FNB Stadium in Johannesburg to complete the series.
"The COVID-19 pandemic has caused considerable disruption to the global sporting calendar, but after discussions with our partners at SA Rugby, we are very pleased to be able to give confirmation of the revised tour schedule," British and Irish Lions managing director Ben Calveley said.
"While things will undoubtedly look different to a typical Lions tour, together with SA Rugby we are determined to deliver an uninterrupted Series for the players who will take the field, as well as the many millions of people watching at home.
"We would like to thank all Lions supporters for their patience and understanding as we continue to navigate our way through the impact of the pandemic, and also extend our enormous gratitude to our commercial partners for their incredible ongoing support."
British and Irish Lions tour of South Africa schedule (ALl dates AEST)
4 July: Lions (Emirates Airline Park, Johannesburg)
8 July: Sharks (Emirates Airline Park, Johannesburg)
11 July: Bulls (Loftus Versfeld, Pretoria)
15 July: South Africa A (Cape Town Stadium, Cape Town)
18 July: Stormers (Cape Town Stadium, Cape Town)
22 July: South Africa (First Test, Cape Town Stadium, Cape Town)
1 August: South Africa (Second Test, FNB Stadium, Johannesburg)
8 August: South Africa (Third Test, FNB Stadium, Johannesburg)