Leigh raced into a 12-0 lead after just seven minutes, but Rovers dug in and were only four points adrift at the break.
The visitors made it 22-6 inside the final quarter, but Featherstone hit back with 10 points in two minutes and the game was in the balance until Leigh added their final try in the dying moments.
It was a huge step up in performance from Featherstone, who had conceded 62 points in both their opening two middle-eights fixtures, to Leeds Rhinos and Huddersfield Giants.
Tries by Reni Maitua – against his former club – and Mitch Brown gave the visitors a flying start, but outstanding forward Josh Walters got Rovers back into contention with a try from a pass by Kyle Briggs, who converted and added a conversion before the break.
It took Leigh until the 50th minute to add to their tally, but Matty Dawson’s try was followed by one from Micky Higham and Martyn Ridyard’s third conversion made it 22-6.
Rovers seemed out of it, but Luke Briscoe crossed from Jordan Baldwinson’s pass and when Briggs added the extras to Jack Ormondroyd’s try in the next set, the gap was down to just four points.
Ridyard landed a penalty on 76 minutes to steady the ship and Gareth Hock went over two later, Ridyard adding the extras to complete the scoring.
Featherstone coach Jon Sharp saluted his team’s “heart and the passion and willingness to have a dig”.
He said: “The effort and the performance gives us something to build on and gives us an opportunity to get our confidence back and our belief in one another. It sets us up nicely for the Batley game in two weeks’ time.”
Featherstone Rovers: Craven, Duckworth, Hardman, Taulapapa, Briscoe, Briggs, Thackeray, Griffin, Ellis, Baldwinson, Tagg, Walters, Spears. Substitutes: Day, Snitch, Cooper, Ormondroyd.
Leigh Centurions: McNally, Higson, Brown, Armstrong, Dawson, Ridyard, Drinkwater, MoiMoi, Higham, Weston, Maitua, Paterson, Hock. Substitutes: Hood, Tickle, Hansen, Hopkins.
Referee: J Smith Warrington.