2012 Londoni suveolümpiamängudel osales Halsall viies võistlusvaldkonnas. Halsall jõudis 100 meetri liblikaga poolfinaali
, postitades aja 58,52, kaugel tema hooaja parim 57,56 märtsis. Halsall jõudis 100 ja 50 meetri vabastiilis finaali, lõpetades vastavalt 6. ja 5. kohal. 4 × 100 m vabastiilis Halsall ujus teise etapi 53.29-s, aidates Briti meeskonnal lõpetada 5. kohal. 4 × 100 m vaheseisundi finaalis lõpetas Briti meeskond 8. kohal, kus Halsall andis ankrusammud 54.08.