Rapid adaptation can prevent extinction when populations are exposed to extremely marginal or stressful environments. Factors that affect the likelihood of evolutionary rescue from extinction have been identified, but much less is known about the evolutionary dynamics (e.g., rates and patterns of allele frequency change) and genomic basis of successful rescue, particularly in multicellular organisms. We conducted an evolve-and-resequence experiment to investigate the dynamics of evolutionary rescue at the genetic level in the cowpea seed beetle, Callosobruchus maculatus, when it is experimentally shifted to a stressful host plant, lentil. Low survival (~1%) at the onset of the experiment caused population decline. But adaptive evolution quickly rescued the population, with survival rates climbing to 69% by the F5 generation and 90% by the F10 generation. Population genomic data showed that rescue likely was caused by rapid evolutionary change at multiple loci, with many alleles fixing or nearly fixing within five generations of selection on lentil. Selection on these loci was only moderately consistent in time, but parallel evolutionary changes were evident in sublines formed after the lentil line had passed through a bottleneck. By comparing estimates of selection and genomic change on lentil across five independent C. maculatus lines (the new lentil-adapted line, three long-established lines and one case of failed evolutionary rescue), we found that adaptation on lentil occurred via somewhat idiosyncratic evolutionary changes. Overall, our results suggest that evolutionary rescue in this system can be caused by very strong selection on multiple loci driving rapid and pronounced genomic change.