Phages, viruses of bacteria, are ubiquitous. Many phages require host cell death to successfully complete their life cycle, resulting in reciprocal evolution of bacterial resistance and phage infectivity (antagonistic coevolution). Such coevolution can have profound consequences at all levels of biological organisation. Here, we review genetic and ecological factors that contribute to determining coevolutionary dynamics between bacteria and phages. We also consider some of the consequences of bacteria-phage coevolution, such as determining rates of molecular evolution and structuring communities, and how these in turn feedback into driving coevolutionary dynamics.