Iberia will launch a thrice-weekly service between Madrid and Johannesburg next August.
The Spanish carrier last flew on the route in 2013, when it suspended service to "restructure its business".
From August 1, Iberia will restart operations on the route with a two-class A330-300, with 36 seats in business and 242 in economy.
Outbound flights will operate on Mondays, Thursdays and Fridays - IB6051 will depart Madrid at 2345 and arrive in Johannesburg at 1010 the next day.
Return legs will depart on Tuesdays, Fridays and Saturdays - IB6050 will leave Johannesburg at 2015 and land in Madrid at 0635 the next day.
Luis Gallego, Iberia chairman and CEO, said: "When we presented our transformation plan, we said that we intended to resume all flights we needed to stop at that time.
"Thanks to the efforts made by all employees to reduce our cost base and thanks to our new fleet, more fuel-efficient, we can now resume the route to Johannesburg, which will be profitable and sustainable."
Johannesburg is Iberia's 11th destination in Africa, joining Luanda, Algiers, Oran, Accra, Malabo, Casablanca, Marrakech, Tangier, Lagos, and Dakar.
Iberia Express will launch a four-times weekly service between Madrid and Birmingham next summer (see news, September 18).