Nicklas Bendtner could have given the visitors the lead, but the Dane struck the crossbar from close range.
The striker was more decisive soon after as he headed in Kieran Richardson's corner to put his side in front at the break.
The R's nearly drew level after half time, but Heidar Helguson's header was cleared off the line by Titus Bramble.
Stephane Sessegnon extended his side's lead when he sprinted past Luke Young before dummying goalkeeper Paddy Kenny to slot in.
The winner came in the 89th minute when Brown's hopeful header from a corner found the net.