Saiss returned from suspension in place of Alfred N’Diaye as the only change to the Wolves starting line-up.
Fulham kicked-off attacking the South Bank end and within the first minute Stefan Johansen found himself staring at a yellow card after he had illegally halted Diogo Jota’s sprint down the left flank.
Ruben Neves went close when he hit a shot from fully 35-yards that skidded past the post but the home support didn’t have to wait long to celebrate.
It was in the ninth minute that Barry Douglas lifted over a corner and Saiss ran in to head between the near post and Fulham keeper David Button.
Jota was inches away from a second when he took a return pass from Ivan Cavaleiro and drilled a shot inches wide of the far post.
Before play resumed Oliver Norwood was booked retrospectively for a foul on Cavaleiro,
When Jota obstructed Ryan Fredericks it gave Ryan Sessegnon the chance of curling the free-kick into the box. The ball seemed to squirm from John Ruddy’s grasp and it fell to the familiar figure of Kevin McDonald on the far side. Douglas quickly closed him down and the Scot lifted his shot over the bar.
Midway through the half Floyd Ayite struck a fierce drive from 22-yards that flew straight into the arms of Ruddy before Sessegnon became the third Fulham player to go into the book, for a foul on Cavaleiro near the right hand corner of the Cottagers area.
It proved costly for Fulham as Douglas hit a terrific free-kick and Bonatini was there to power in a header that gave Button no chance.
Fulham threatened through Neeskens Kebano after Fredericks had crossed into the home area but Wily Boly was there to clear before the striker could get a shot away.
Saiss went into the book for pulling back Johansen who, moments later, hit a low effort from 20-yards that went straight into the arms of Ruddy.
McDonald saved his side from an almost certain third goal when he cut out Jota’s through ball that would have otherwise left Cavaleiro in the clear.
Half-Time: Wolves 2 Fulham 0
Seconds after the restart, Button had to run from his area to head clear from Cavaleiro who had beaten the offside trap.
McDonald caught Saiss with a high challenge and was booked before Cavaleiro lobbed the ball into the path of Bonatini who, at full stretch, diverted it wide.
Fulham were close to pulling one back in the 51st minute when Ayite played a one-two with Rui Fonte and fired narrowly wide.
Douglas joined the list of bookings after his flailing arm had caught Kebano who was replaced by Yohan Mollo almost immediately.
Neves was close with a 20-yard volley and, after Button had palmed away a short cross from Jota, it was Jota that fired over with a shot on the turn from the edge of the box.
Wolves 2 (Saiss 9, Bonatini 26)
Fulham then sent Rafa Soares on for Ayite before two more chances fell the way of Wolves with Neves trying an audacious lofted attempt from well inside his own half after spotting Button off his line.
The keeper regained his ground to catch the ball but he stood helpless as a deflected shot from Cavaleiro flew wide of the post.
A Douglas corner in the 67th minute almost led to a third Wolves goal. Bonatini’s header flew across goal and Jota, at the far post, just failed to turn it home.
Saiss then teed up Jota whose shot was blocked and when the ball ran back to Saiss he hit a firm drive that was taken by Button.
Bonatini headed over from a good position after a fine cross from Matt Doherty as Wanderers continued to probe at the visitors defence.
In the closing few minutes Nuno used all three of his substitutes with Bright Enobakhare, N’Diaye and Ben Marshall taking the places of Cavaleiro, Saiss and Bonatini respectively.
Although Fulham enjoyed some possession as the game approached its conclusion, Ruddy wasn’t tested and Wolves comfortably held out for the three points.
Wolves: Ruddy, Doherty, Douglas, Saiss, Boly (N’Diaye 79), Bennett, Cavaleiro (Enobakhare 75), Coady (capt), Bonatini (Marshall 87), Jota, Neves.
Unused subs: Norris, Costa, Batth, Vinagre.
Bookings: Saiss (42 – foul), Douglas (53 – foul).
Fulham: Button, Fredericks, Sessegnon, Odoi, McDonald (capt), Kebano (Mollo 53), Johansen, Fonte (Kamara 70), Ayite (Soares 63), Ream, Norwood.
Unused subs: Bettinelli, Kalas, Edun, Cisse.
Bookings: Johansen (1 – foul), Norwod (9 – Foul), Sessegnon (25 – foul) McDonald (48 – foul).
Referee: D. Coote.