The Swiss went ahead after six minutes when Shaqiri held off left back Juan Carlos Garcia and unleashed a curling strike from outside the box past Honduran goalkeeper Noel Valladares.
He made it 2-0 in the 31st minute after being put clean through on goal by Josip Drmic, and the pair combined again in the 71st minute as Shaqiri completed his hat-trick.
France drew 0-0 with Ecuador to top the group and will play Nigeria in the last 16, while the Swiss play Group F winners Argentina.
Image: Xherdan Shaqiri (L) celebrates scoring
Photograph: Matthew Lewis/Getty Images