Viscous fingering in porous media during CO2 flooding is investigated experimentally as well as numerically in this study. Experiments were accomplished in real cores saturated with simulated oil in thermostat, and the effect of CO2 flooding is studied in homogeneous cores with differing permeability and viscosity under various pressures. Furthermore, a numerical model called diffusion-limited aggregation (DLA) is adopted to investigate viscous fingering in homogeneous and heterogeneous porous media and porous media with interior crack. The simulation of viscous fingering in cores with permeability contrast shows that heterogeneity can reduce displacement effect. When the permeability contrast ratio of each layer is larger than 10, the effect of gas channeling cannot be ignored and recovery efficiency decreases sharply. Meanwhile, for flooding in fractured porous media, it is found that CO2 breaks through preferentially along the crack and later CO2 advances along the flow path. Gas channeling is more serious in the fractured porous media than homogeneous media. According to experiments and simulation results, gas channeling is the primary cause for significant decreasing of oil displacement efficiency and shall be avoided in CO2 displacements. That is, CO2 flooding is more appropriate for homogeneous and low-permeability porous media.