La Jocurile Olimpice de Vară din 2012 de la Londra, Halsall a concurat în cinci discipline. Halsall a ajuns în semifinale la 100m fluture
, înregistrând un timp de 58,52, cu mult în afara sezonului ei cel mai bun de 57,56 set în luna martie. Halsall a ajuns în finala la 100 m stil liber și la 50 m stil liber, terminând pe locul 6 și 5 respectiv. În relaia de 4 × 100 m stil liber, Halsall a înotat în etapa a doua într-o împărțire de 53,29, ajutând echipa britanică să ajungă pe locul 5. În finala ștafetei de 4 × 100 m, echipa britanică a terminat pe locul 8, cu Halsall furnizând un picior de ancoră de 54,08.