This paper proposes a novel fingerprint matching algorithm. The matching process was divided into three stages. In first stage, local orientation structures matching was performed to evaluate the similarity of orientation information around the minutiae. In the second stage, local minutia structure matching was performed to evaluate the similarity of neighborhood minutiae distribution around the minutiae. In the third stage, the matching pair sets was built by matching the global minutia structures that extended from the local minutia structure, which evaluated the global similarity. The final similarity between two fingerprints was gotten according to the matching scores calculated from three stages. Experiments on four databases of FVC2002 show that this fingerprints matching technique is really effective.