We consider the problem of reconstructing near-perfect phylogenetic trees using binary character states (referred to as BNPP). A perfect phylogeny assumes that every character mutates at most once in the evolutionary tree, yielding an algorithm for binary character states that is computationally efficient but not robust to imperfections in real data. A near-perfect phylogeny relaxes the perfect phylogeny assumption by allowing at most a constant number of additional mutations. We develop two algorithms for constructing optimal near-perfect phylogenies and provide empirical evidence of their performance. The first simple algorithm is fixed-parameter tractable when the number of additional mutations and the number of characters that share four gametes with some other character are constants. The second, more involved, algorithm for the problem is fixed-parameter tractable when only the number of additional mutations is fixed. We have implemented both algorithms and have shown them to be extremely efficient in practice on biologically significant data sets. This work proves that the BNPP problem is fixed-parameter tractable and provides the first practical phylogenetic tree reconstruction algorithms that find guaranteed optimal solutions while being easily implemented and computationally feasible for data sets of biologically meaningful size and complexity.