En els Jocs Olímpics d'estiu de 2012 a Londres, Halsall va competir en cinc disciplines. Halsall va arribar a les semifinales dels 100m borboleta
, posant un temps de 58,52, molt lluny del seu millor temps de la temporada de 57,56 establert al març. Halsall va arribar a les finals dels 100 m estil lliure i 50 m estil lliure, acabant sisè i cinquè respectivament. En el releu de 4×100 m freestyle Halsall va nadar la segona etapa en una divisió de 53,29, ajudant a l'equip britànic a acabar en cinquè lloc. En la final del releu de 4×100 m l'equip britànic va acabar 8è, amb Halsall proporcionant una etapa d'ancora de 54.08.