Job shop scheduling (JS) is an important technology for modern manufacturing. Flexible job shop scheduling (FJS) is critical in JS, and it has been widely employed in many industries, including aerospace and energy. FJS enables any machine from a certain set to handle an operation, and this is an NP-hard problem. Furthermore, due to the requirements in real-world cases, multi-objective FJS is increasingly widespread, thus increasing the challenge of solving the FJS problems. As a result, it is necessary to develop a novel method to address this challenge. To achieve this goal, a novel collaborative evolutionary algorithm with two-population based on Pareto optimality is proposed for FJS, which improves the solutions of FJS by interacting in each generation. In addition, several experimental results have demonstrated that the proposed method is promising and effective for multi-objective FJS, which has discovered some new Pareto solutions in the well-known benchmark problems, and some solutions can dominate the solutions of some other methods.