Queens Park Rangers 0-2 Preston North End - Cannon double keeps play-off hopes alive in the capital
and live on Freeview channel 276
A pinpoint header from Cannon in the second half opened the scoring before he got in behind the backline just a few minutes later to double his and Preston's tally to take the game away from the hapless home side.
Ryan Lowe made just one change for the game, Robbie Brady coming into the side in favour of Alvaro Fernandez who dropped to the bench.
Patrick Bauer and Liam Delap were absent from the squad, the latter missing out through illness, with Jacob Slater and Bambo Diaby, having served a one match suspension, coming into the 18.
The sun was beating down in the capital but chances came somewhat at a premium in the opening exchanges, Andrew Hughes' cross from the left had Seny Dieng worried in the QPR goal after eight minutes, tipping the ball away.
Troy Parrott got a shot away five minutes later but it was blocked shortly after it left his boot on the left side of the box.
North End could have found the breakthrough after 24 minutes, captain Alan Browne receiving the ball from Robbie Brady inside the area, cutting inside onto his right foot before bending the ball onto the inside of the far post.
Just seconds later it could have been the home side ahead. Ilias Chair led the counter from Browne's chance and was clean through on goal with only Freddie Woodman to beat - he tried to loft the ball over the PNE no.1 but directed it wide of the post.
Rangers then had another chance on target four minutes later, the home side keeping the ball alive from a free kick whipped into the box, Jimmy Dunne's header safe into the hands of Woodman.
On the half hour mark Preston again could have found themselves in front, Brady's inswinging corner from the right being met by Jordan Storey, back on the scene of his first PNE goal, but his firm header was beaten away by Dieng.
On 38 minutes, Troy Parrott should have broken the deadlock. The Tottenham Hotspur loanee stole away from the last line of the defence after Cannon had put the pressure on, presenting the ball to his strike partner. The Republic of Ireland international was bearing down on goal but a heavy touch forced him wide and his lofted effort was wide of the mark.
North End were dealt a blow on the stroke of half time, captain Browne being withdrawn due to injury in stoppage time.
Preston were quickly under pressure in the second half, from their own making. With bodies forward Brad Potts' poor cross was intercepted allowing the home side to break two on two, Chair led their breakaway with a slide tackle from Ben Whtieman falling to the feet of Chris Willock who was then tackled by a retreating Parrott in the nick of time.
But it was North End that got their noses in front, 59 minutes in. Brady's cross from the left was met by Cannon ahead of his man who was able to steer the ball inside the far post with perfect placement.
Not content with one, and with the home support starting to turn on their side, Cannon made it two just four minutes later. North End's no.28 stole in behind the Rangers' defence after a neat flick around the corner from Parrott, composing himself before dispatching the ball into the back of the net.
In search of his hat-trick, the Everton loanee was again sent in behind the QPR defenders on 72 minutes. He didn't quite spot his marker slipping allowing him a clean run through at Dieng and forced himself wide before cutting inside on his left foot, getting the finish wrong and sending it wide of the far post.
QPR sent on most of their flair and forward players from a stacked home bench but could not create much in the way of clear cut chances, until the 83rd minute. A cross from the right managed to get through to Willock who struck on the half volley and looked likely to hit the net if not for Potts' block, which then fell to Sam Field who couldn't keep the ball down from distance.
PNE Starting XI: Woodman, Storey, Lindsay, Hughes, Potts, Whiteman, Johnson (Ledson, 88'), Browne (Onomah, 45+1'), Brady (Fernandez, 80'), Cannon, Parrott (Woodburn, 80').
PNE subs: Cornell, Diaby, Slater.
QPR Starting XI: Dieng, Dickie, Balogun, Dunne, Laird (Adomah, 67'), Johansen (Amos, 74'), Paal (Lowe, 67'), Field, Willock, Chair, Dykes (Martin, 81').
QPR subs: Archer, Richards, Dozzell.
Attendance: 14,620 (793)