Switzerland entered the match at the Arena Amazonia level on three points with Ecuador, meaning the Swiss needed a better result than the South American side to advance.
And Shaqiri got things started early by opening the scoring in the sixth minute. The Bayern Munich winger then doubled his tally in the 31st, while he became the first Swiss player to score a hat trick in a World Cup match since 1954 when he netted his third goal 19 minutes from time.
The result, combined with Ecuador's 0-0 draw against France, means that Switzerland will now face Group F winners Argentina in the round of 16 on Sunday, while Honduras exits the tournament after three successive defeats.
Shaqiri almost scored three minutes into the game when he turned a pass from Josip Drmic on goal with a first-time effort that was hit straight at goalkeeper Noel Valladares.
However, Shaqiri atoned for the miss three minutes later with a brilliant goal that saw him cut in from the right wing and hammer a left-footed shot into the upper corner of the net that just clipped the underside of the crossbar.
Drmic and Shaqiri combined in the 31st minute to make it 2-0 to the Swiss as Shaqiri knifed through the middle of the Honduran defense and took a pass from Drmic before slotting his shot past Valladares.
Honduras went on the attack after the break and nearly scored in the 52nd minute when Jerry Bengtson sliced into the penalty area and rounded goalkeeper Diego Benaglio, only for his shot to be cleared off the goal line by defender Ricardo Rodriguez.
Shaqiri then put the finishing touches on the win by completing his hat trick in the 71st minute.
Drmic got the ball on the left wing and beat his defender before sliding a pass to the middle of the area for Shaqiri, whose first-time shot wrong-footed Valladares and capped a big win that carries the Swiss into the knockout round for the second time in the last three World Cups.