Kevin Doyle converted a first-half penalty to secure Reading’s third straight win on a frustrating afternoon for Fulham at Craven Cottage.

Chris Coleman’s side were up against it after Ian Pearce was dismissed for upending Doyle in the penalty area. The Republic of Ireland international made it three goals in as many games with a convincing penalty and former Fulham goalkeeper Marcus Hahnemann thwarted the hosts’ late rally as the Whites lost at home for the third time this term.

Steve Coppell’s side had the better of the early exchanges and Liam Rosenior had to clear acrobatically as the Royals threatened before Glen Little opened up the Fulham defence with a ball over the top. James Harper’s low cross was so precise that Doyle didn’t have to break stride and Pearce upended the in-form striker with a desperate lung. Dermot Gallagher gave the obvious penalty, from which Doyle sent Antti Niemi the wrong way, and sent Pearce from the field.

Reading nearly doubled their lead when Zat Knight almost put through his own net from Graham Murty’s cross – and after three first-half substitutions for injuries – Fulham almost equalised at the end of the first half with Collins John darting into the box before being thwarted by a calm intervention from Ivar Ingarmarsson.

Coleman sent Fulham out early for the resumption and the ten men made a spirited showing of getting back into it. Claus Jensen brought a good save from Hahnemann almost immediately while Tomasz Radzinski and Brian McBride both squandered presentable opportunities. But Fulham’s search for an equaliser was always going to lead to space for Reading to exploit and substitute John Oster should have made the game safe instead of firing over the bar from Seol Ki-Hyeon’s cross.

Brian McBride almost levelled with a lovely curling from 25 yards that flew agonisingly wide but the Royals finished on the front foot with Niemi called upon to save from Doyle with his feet as Coppell’s excellent adaptation to the top flight continued.

FULHAM (4-4-2): Niemi; Rosenior, Queudrue (Bocanegra 45), Pearce, Knight; Brown (Diop 75), C. Jensen, Radzinski, Boa Morte; McBride, John. Subs (not used): Lastuvka, Helguson.

SENT OFF: Pearce 16.

READING (4-5-1): Hahnemann; Murty, Sonko, Ingimarsson, Shorey, Little (Oster 38); Sidwell (Gunnarsson 33), Harper, Hunt, Seol Ki-Hyeon (Lita 90); Doyle. Subs (not used): Federici, Bikey.

BOOKED: Harper, Ingimarsson, Sonko.

GOAL: Doyle (pen 17).

REFREE: Dermot Gallagher (Oxfordshire).

ATTENDANCE: 22,673.