Now five points clear at the top of Group D, Etoile need a point in their next match against Primeiro Agosto to confirm their place in the last eight.
Maher Hannachi scored for a second successive match to hand Etoile the lead 21 minutes into the match.
Substitute Slim Ben Belgacem then doubled the advantage a minute from time to seal victory for Etoile, who now have 10 points out of a possible 12.
Having beaten Swallows 3-0 in the reverse fixture away in Swaziland last week, the Tunisians were again at their best on Friday as they remain unbeaten.
They only dropped points in the 1-1 draw with Angolan side Agosto in their opening match.
Friday’s match was a horrible outing for Swallows, who dented their quarter-final hopes by dropping one place down to third following this second straight defeat.
Elsewhere in Luanda, Zesco United slipped further on the table after surrendering their lead to lose 2-1 away at Agosto.
When they seemed to be headed towards recording their first group win, the Zambians then sensationally collapsed right at the death to allow the hosts to claw back and grab three points.
John Ching’andu fired Zesco ahead but Geraldo replied for Agosto in the 90th minute.
DR Congo defender Bobo Ungenda then broke the visitors’ hearts with the winner deep into stoppage time to wrap up an astonishing comeback for the home side.
Now without a win in four matches in which they have two draws and two defeats, Zesco’s campaign is almost doomed as they remain stranded at the bottom of th table with just two points.
Even if they win their remaining games away at Mbabane Swallows and at home to Etoile du Sahel, they might still fail to qualify for the quarter-finals.
They have to hope for their opponents to falter, a very unlikely scenario, with Agosto having jumped to second position on the table where they now have five points.