French League leaders Stade Francais opened their Heineken Cup challenge by achieving their first win in Belfast at the fifth attempt.
Guillaume Bousses scored a try after 23 minutes with Dimitri Szarzewski adding another midway through the second half.
Fly-half Juan Martin Hernandez landed a couple of fine drop goals with Lionel Beauxis scoring another.
Ulster had spells of pressure and got a late try when Paddy Wallace ran on to Niall O'Connor's kick through.
Stade Francais, aided by a strong breeze in the first half, dominated possession early on and were 16 points up before Ulster started to make ground.
Their opening score was a Hernandez drop goal on eight minutes after some good approach work from the pack.
Beauxis gave Stade a deserved 6-0 lead with a penalty.
A moment of Hernandez magic - when he interchanged with Brian Liebenberg - gave Bousses some space and the centre beat the scrambling cover to score.
Beauxis added the easy extras and five minutes later Hernandez gathered an Ulster clearance out on the right wing and boomed over a superb long-range drop.
Ulster applied some pressure late in the half but failed to get the score required to revive the contest.
They did, however, manage to get on the scoreboard with a Niall O'Connor penalty after 51 minutes, but it only heralded a response from Stade that took the game well beyond Ulster's reach.
Hooker Dimitri Szarzewski forced his way over for Stade's second try which Beauxis converted.
Eight minutes later Beauxis emulated Hernandez with a 40-metre drop goal to make it 26-3, with Wallace's 80th-minute try being mere consolation for a well beaten Ulster in the Pool Four clash.
Ulster: Cunningham, Schifcofske, Cave, Wallace, Trimble, O'Connor, Boss, Court, Best, Botha, O'Donoghue, Caldwell, Ferris, Dawson, Diack. Replacements: Steinmetz for Schifcofske (45), Willis for Boss (48), Brady for Best (74), McCullough for Ferris (68), Del Fava for Steinmetz (57).
Stade Francais: Beauxis, Arias, Bousses, Liebenberg, Saubade, Hernandez, Oelschig, Roncero, Szarzewski, Attoub, Marchois, Taylor, M. Bergamasco, Rabadan, Parisse. Replacements: Marconnet for Attoub (45), Vigouroux for Marchois (64), Leguizamon for M. Bergamasco (47).
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.