Gordon Strachan's men were under the cosh for much of the first half but went in front through Chris Killen's 29th-minute header.
By that stage, Preston had already forced a number of saves from home goalkeeper Brad Jones and the Lilywhites came close again after the interval when the impressive Ross Wallace was denied by the woodwork.
North End also saw strong appeals for a penalty waved away by referee Steve Tanner after Darren Carter had gone down following a challenge from Stephen McManus.
Yet Boro held on and rubbed salt in the visitors' wounds with a second goal through Jonathan Franks late on.
The victory lifts the Teessiders to eighth in the table, but they will need to improve significantly in their remaining games if they are to make a late charge into the top six.
McManus and Rhys Williams returned from illness and suspension respectively to take their places in the Boro side, with Joe Bennett and Lee Miller also earning recalls.
Gary O'Neil, Scott McDonald and Julio Arca all dropped out of the squad, while Jonathan Grounds was relegated to the bench.
Carter replaced Chris Sedgwick in the only change to the visitors' starting XI.
Sean St Ledger, who rejected a permanent move to Middlesbrough earlier in the season following a loan spell at the Riverside, started at centre-half, with new loan signing Elliott Ward named among the substitutes.
Preston dominated the opening period but were unable to find a way past Jones.
Wallace was the first to test the Boro goalkeeper in the 14th minute with a curling free-kick.
Richard Chaplow then fired a shot into the side-netting from an acute angle before Jones made further saves to deny Neil Mellor and Carter.
The visitors were well on top, yet remarkably it was Boro, whose only effort of note had been Miller's weak shot wide in the 15th minute, who took the lead shortly before the half hour.
St Ledger was penalised for a push on Miller and from the resulting free-kick Barry Robson swung in a deep cross for Killen to head in off the far post.
The goal did little to lift the hosts and Jones came to their rescue again two minutes before the break, denying Wallace with his feet.
Boro did threaten again in first-half injury time, however, as Robson curled a free-kick narrowly wide from 25 yards.
It was the Teessiders who created the first chance after the break, Andy Lonergan making a solid stop to deny Franks after another Robson set-piece had only been half-cleared.
David Wheater saw a goalbound strike blocked by team-mate Killen soon after as Boro finally threatened to spark into life.
But Preston responded well and, after Chris Brown had seen a close-range effort saved, Wallace came desperately close to equalising with a thunderous strike that cannoned off the post before bouncing clear off the diving Jones.
North End's evening was summed up with 11 minutes remaining as Carter tumbled in the area under challenge from McManus, only for referee Tanner to ignore claims for a penalty.
Killen should have added a second for Boro five minutes later when he rose to meet a Robson corner, but his header bounced harmlessly over the bar.
However, the hosts did double their lead in the 90th minute, Franks firing home from close range after Lonergan had denied substitute Leroy Lita.