Ellis Harrison fired Rovers into the third round of the Carabao Cup with a first-half strike at Craven Cottage to knock-out the Championship hosts.
Harrison's early goal was enough for Rovers to register the win, as the striker completed a fine team move with a calm and controlled finish after a perfectly directed pass from Liam Sercombe, with Harrison on the scoresheet for the first time away from the Mem since his goal at Stamford Bridge in the same round of the competition last season.
Rovers will now wait to discover who they will face in the next stage of the competition, with the draw scheduled to take place in the early hours of Thursday morning.
In the build-up to the tie, Manager Darrell Clarke made three changes to the starting XI that began Saturday's victory over Bury. In came Marc Bola, Stuart Sinclair, and Byron Moore were the trio that came into the starting XI. Bola, who was making his Rovers debut, replaced Joe Partington, reverting to right-back in a defence that included skipper Tom Lockyer, Ryan Sweeney and Lee Brown.
Up front, Tom Nichols started the encounter on the bench, as Byron Moore made his first start of the season, linking up with Ellis Harrison and leading goalscorer, Billy Bodin in the Rovers attack.
In contrast, the hosts made just the eleven changes for the tie, with 'keeper Marcus Bettinelli returning in goal and Brighton loanee, Oliver Norwood included in the starting line-up for the contest.
As the open period of the game played out, the first threat on goal manifested when a ball from Neeskens Kebano from wide out right was directed into a dangerous position in behind the Rovers defence, with the ball skidding off the greasy surface towards the far-post, where Lee Brown was on hand to usher away the danger.
The hosts looked to impose themselves early on in the game, with Aboubakar Kamara breaking down the right and readjusting his run to forge a direct path to goal, but with Tom Lockyer closing the down the forward, Kamara could only prod his toe-poke wide of the target, with the ball brushing the side netting.
Rovers broke the deadlock in the 12th minute, as a fine touch from Chris Lines found Liam Sercombe, with the midfielder sliding a perfectly weighted pass into the path of Ellis Harrison, who managed to control his run and stay onside, with the striker keeping his composure as he advanced towards goal, taking the ball around 'keeper Marcus Bettinelli and calmly slotting the ball home to put Rovers ahead.
Harrison was again involved shortly following his goal, as a deep cross from Lee Brown pitted the striker in an aerial battle with 'keeper Bettinelli, with the Fulham shot-stopper failing to claim the ball, but the referee penalised Harrison for making too much contact with the 'keeper in the air.
The organised Rovers defence frustrated the home side during the opening forty-five minutes, as Fulham were restricted to few ventures into the Rovers area and forced to launch long-range attempts on goal. Sheyi Ojo took aim from outside the area a left-footed shot that bounced across the surface and had Sam Slocombe diving to his left, but the midfielder's effort flashed wide of the post.
As half-time loomed, a long-ball from the back was taken down acrobatically by Billy Bodin, who managed to knock the ball past Adetayo Edun and advance towards goal, but slightly off-balance, the forward couldn't find the target with his right-footed attempt.
Bodin's opportunity was quickly proceeded by a well-weighted set-piece into the area by Lee Brown, with the ball pinballing around the area and eventually falling to Tom Lockyer, who forced a volley towards goal that Bettinelli had to push away with a reaction save from close-range, as Rovers headed into the break in front.
Following the interval, Fulham increased the tempo in search of the equaliser, with Neeskens Kebano looking to test Sam Slocombe from a tight angle inside the box, but the Rovers 'keeper was equal to the eventual left-footed shot from Kebano.
The Rovers back-four had to endure a long-spell off pressure from the hosts during the second-half, but stood resolute, managing to block a number of threatening shots from reaching the target. Both O'Riley and Kamara saw efforts deflected away by the Rovers defence, while there was an anxious moment as an off the ball collision between Ryan Sweeney and Kamara resulting the striker falling to the floor, with both players receiving a talking to from referee for the scuffle inside the penalty box.
On the hour mark, Bodin was replaced by Nichols, with the substitute immediately involved, as a searching ball over the top by Sercombe was aimed towards the striker, but before he could control the bouncing ball the linesman on the far-side had raised his flag for offside.
Goalscorer Harrison was replaced by Gaffney, with the forward receiving a great reception from the travelling fans. Gaffney's first touch was a delightful outside of the boot pass through to Tom Nichols, who got to the ball just ahead of the advancing Bettinelli, but couldn't quite get enough control to take the ball around the 'keeper, who had advanced well outside of the Fulham area to deal with the threat.
In the closing stages, Rovers dealt with the threat of an energetic home-side, with Fulham unable to create any late opportunities to test Sam Slocombe's goal, with Neeskens Kebano blasting a late effort over the crossbar following a break into the Rovers box.
The victory sees Rovers enter the hat for the third round draw, which takes place at 4:15am (yes, that you read that correct) on Thursday morning.
Fulham F.C: Marcus Bettineelli (GK), Neeskens Kebano, Michael Madl (C), Oliver Norwood, Sheyi Ojo, Marcelo Djaalo, Matt O'Riely, Adetayo Edun (81' Ryan Sessegnon), Steven Sessegnon, Ibrahima Cisse, Aboubakar Kamara.
Subs: David Button (GK), Denis Odoi, Kevin McDonald, Stefan Johansen, Rui Fonte, Tomas Kalas.
Rovers: Sam Slocombe, Marc Bola, Tom Lockyer (C), Ryan Sweeney, Lee Brown, Liam Sercombe, Chris Lines, Stuart Sinclair, Byron Moore (81' Ryan Broom), Ellis Harrison (66' Rory Gaffney), Billy Bodin (60' Nichols).
Subs: Alexis Andre (GK), Tom Broadbent, Dom Telford.