We investigate numerically the dynamics of capillary filling and Haines jump events using free energy Lattice Boltzmann (LB) simulations. Both processes are potentially important multi-phase pore-scale flow processes for geological CO 2 sequestration and oil recovery. We first focus on capillary filling and demonstrate that the numerical method can capture the correct dynamics in the limit of long times for both high and low viscosity ratios, i.e. the method gives the correct scaling for the length of the penetrating fluid column as a function of time.Examining further the early times of capillary filling, three consecutive length vs. time regimes have been observed, in agreement with available experimental work in the literature. In addition, we carry out simulations of Haines jump events in idealised and realistic rock pore geometries. We observe that the Haines jump events are cooperative, non-local and associated with both drainage and imbibition dynamics. Our observations show that the pore filling dynamics is controlled by the Ohnesorge number, associated with the balance between viscous forces and inertial / surface tension forces. Using this concept, we are able to identify the type of pore filling dynamics that will occur.