In this review, we describe and analyze a mesoscale simulation method for fluid flow, which was introduced by Malevanets and Kapral in 1999, and is now called multi-particle collision dynamics (MPC) or stochastic rotation dynamics (SRD). The method consists of alternating streaming and collision steps in an ensemble of point particles. The multi-particle collisions are performed by grouping particles in collision cells, and mass, momentum, and energy are locally conserved. This simulation technique captures both full hydrodynamic interactions and thermal fluctuations. The first part of the review begins with a description of several widely used MPC algorithms and then discusses important features of the original SRD algorithm and frequently used variations. Two complementary approaches for deriving the hydrodynamic equations and evaluating the transport coefficients are reviewed. It is then shown how MPC algorithms can be generalized to model non-ideal fluids, and binary mixtures with a consolute point. The importance of angular-momentum conservation for systems like phase-separated liquids with different viscosities is discussed. The second part of the review describes a number of recent applications of MPC algorithms to study colloid and polymer dynamics, the behavior of vesicles and cells in hydrodynamic flows, and the dynamics of viscoelastic fluids.