Colne climbed out of the Lancashire League’s bottom two on the final day of the season, comdemning Bacup to the wooden spoon at the Horsfield.
And with Rishton losing by four wickets to Enfield, Matt Walker’s men finished 12th overall, after their sixth win of the campaign.
Bacup won the toss and put Colne in to bat, and the hosts finished on 164-8 in their 50 overs.
Professional Haseeb Azam took the first of his three wickets to remove Tom Bradshaw for seven with the score on 11, but Joel Duerden and Sam Tillotson shared 40 for the second wicket.
Matthew Ramshead saw off the pair, Duerden for 20 and Tillotson for 16, as he went on the claim 3-53.
But to build on the foundation, captain Walker hit 22, Danny Kegg 21, sub professional Christi Viljoen, from Blackpool, 14, Kenton Rhodes 13 not out and Andy Hakin 12.
Azam finished with 3-37 and Matt Thompson 2-33.
Rhodes was unbeaten at the close, passing 500 runs for the season in an impressive campaign.
Namibian Viljoen then took 5-36 as Bacup were bowled out for 142, 23 runs short of victory.
Bacup were in trouble from the off, reduced to 13-3 as Hakin and Viljoen got to work.
Openers Matt Collinge and John Syers departed for a single apiece, while pro Azam added only six before being trapped by Viljoen.
Tim Farragher and Peter Killelea put on 56 for the fourth wicket to put the visitors back in contention – Farragher top-scoring with 31 to pass 5,000 Lancashire League runs, while Killelea made 23.
Captain Matt Thompson hit 17, Aaron Fielding 15 and Jack Bradford 14 not out, but Viljoen finished with a five-fer, while Duerden and John Lambert each took two wickets each.