The flexible job shop scheduling problem (FJSP) is one of the most important problems in the field of production scheduling, which is the abstract of some practical production processes. It is a complex combinatorial optimization problem due to the consideration of both machine assignment and operation sequence. In this paper, an efficient artificial fish swarm model with estimation of distribution (AFSA-ED) is proposed for the FJSP with the objective of minimizing the makespan. Firstly, a pre-principle and a post-principle arranging mechanism that operate by adjusting machine assignment and operation sequence with different orders are designed to enhance the diversity of population. Following this, the population is divided into two sub-populations and then two arranging mechanisms are applied. In AFSA-ED, a preying behavior based on estimation of distribution is proposed to improve the performance of algorithm. Moreover, an attracting behavior is proposed to improve the global exploration ability and a public factor based critical path search strategy is proposed to enhance the local exploitation ability. Simulated experiments are carried on BRdata, BCdata and HUdata benchmark sets. The computational results validate the performance of the proposed algorithm in solving the FJSP, as compared with some other state of the art algorithms.