As a popular swarm intelligence optimisation approach, firefly algorithm (FA) has exhibited excellent search capabilities in various optimisation problems. However, FA still has some limitations. The search efficiency is sensitive to the step size factor, and the single search pattern results in slow convergence rate. To tackle these issues, this paper proposes a multi-stage adaptive FA with enhanced search (MSAFAES). First, a new adaptive parameter method is designed, in which the entire search is divided into two stages. Different parameters strategies are adopted for different search stages. Then, three types of search patterns are employed in the search process. To validate the performance of MSAFAES, 10 well-known benchmark problems are tested. Computational results demonstrate the effectiveness of MSAFAES when compared with three other FA variants.