Sebastien Ogier benefited from Mads Ostberg's crash and then held off a charging Dani Sordo to lead Rally Portugal after SS4.
Ostberg had grabbed the lead from Ogier after SS2 but then rolled 13 kilometres into the following stage.
That allowed Ogier to take over at the front, but he could not extend his lead as Citroen's Sordo went fastest in both SS3 and SS4.
The Spaniard trimmed more than eight seconds in total from Ogier, meaning the pair are separated by just 2.2 seconds ahead of this evening's Lisboa special stage.
Jari-Matti Latvala also gained time on team-mate Ogier, who admitted his earlier choice of softs all round - Friday's five stages take place without a full service - was not ideal.
Mikko Hirvonen was also hamstrung by set-up issues, and despite driving "at the limit" surrendered third to Latvala. He now trails Ogier by 17.1s.
Thierry Neuville, second to Sordo on SS4, lies fifth, the last man within one minute of Ogier.
Evgeny Novikov is a relatively comfortable sixth, albeit 1m08s down, as various problems afflicted those behind.
Michal Kosciuszko spun on SS3, allowing Nasser Al-Attiyah to slip by and into seventh.
Andreas Mikkelsen, meanwhile, lost his power steering just one kilometre into the 18km run through Ourique and lost more than two minutes as a consequence.
His difficulties promoted Martin Prokop and Dennis Kuipers into ninth and 10th respectively. Mikkelsen is 16th.
That means he trails Robert Kubica, who worked his way up to second in WRC2 despite suffering radiator damage on SS2.
The Pole was faster than all but Esapekka Lappi over SS3 and SS4.
His Citroen is now 23s behind Lappi's Skoda, with Elfyn Evans and Sepp Wiegand both less than eight seconds down the road.
Leading positions after SS4: Pos Driver Car Time/Gap 1. Sebastien Ogier Volkswagen 46m38.5s 2. Dani Sordo Citroen + 2.4s 3. Jari-Matti Latvala Volkswagen + 11.3s 4. Mikko Hirvonen Citroen + 17.1s 5. Thierry Neuville M-Sport Ford + 28.1s 6. Evgeny Novikov M-Sport Ford + 1m08.7s 7. Nasser Al-Attiyah M-Sport Ford + 2m10.7s 8. Michal Kosciuszko Italia Mini + 2m18.2s 9. Martin Prokop Czech Ford + 2m18.7s 10. Dennis Kuipers M-Sport Ford + 2m37.9s