© PA Photos
Nigel Adkins's side were positive from the outset and were rewarded when John Arne Riise conceded a penalty after bringing down Robson-Kanu in the box.
The Welsh midfielder got up to take the spot kick and sent Mark Schwarzer the wrong way to score with a composed spot kick.
Fulham looked for a quick response through Berbatov, but his shot on the turn was scuffed wide from distance.
Berbatov was involved again soon after with an instinctive flick towards goal, with Alex McCarthy well placed to save with relative ease.
At the other end Danny Guthrie sent a swerving strike from distance just wide of the target as Reading continued to pose a potent attacking threat.
Reading held firm to lead at the interval, with Riise firing well wide late in the first half.
Early in the second half Fulham had a strong penalty shout turned down as Berbatov tussled with Stephen Kelly, but Reading were quick to capitalise on the counter.
Guthrie and McCleary combined to break and force Schwarzer to parry, with Robson-Kanu on hand to curl home from close range for his second of the match.
Martin Jol's side responded and reduced the deficit 20 minutes from time as Rodallega found Ruiz to finish coolly under a sprawling McCarthy.
Just six minutes later Royals substitute Adam Le Fondre restored his side's two-goal advantage, squeezing home from a tight angle.
Ruiz then got his second almost instantly at the other end to make the score 3-2, before Rodallega smashed Berbatov's cross off the woodwork.
With both sides attacking at will, Reading broke through Jem Karacan, who tucked home to secure his side's first win in 12 league games.