The 1-2-3 spots of the Marlins' lineup went a combined 7-for-10 with two RBIs and a pair of runs scored in Gordon's first game back from the 15-day disabled list.
Miami's bats came to life at a good time as they supported another quality outing by Fernandez.
The Nationals began the scoring in the second when they got a sacrifice fly from Wilson Ramos to put themselves ahead 1-0 against the stingy Fernandez. However, that's all they would be able to muster on the night.
Both men on the mound were strong on the hill as Fernandez locked down the Nats' bats and Jordan Zimmermann kept the Fish at bay until the fifth.
In the fifth, Miami knotted things up when Adeiny Hechavarria contributed a sac fly of his own to plate J.T. Realmuto.
The Marlins continued their momentum in the sixth with a pair of runs to take a 3-1 lead. Gordon made his presence known from the lead-off spot with a triple to start the frame. Martin Prado brought him home on his third consecutive single of the game.
Realmuto eventually added an insurance run later in the sixth to push the Miami lead to two.
In the seventh, Christian Yelich got in on the action as he provided another run for the Fish with an RBI hit to left.
The Miami bullpen pieced together three innings of relief work to close out the Nationals 4-1.
A.J. Ramos sealed the win in the ninth to earn his 17th save of the season.
Fernandez was dominant once again at home, finishing with six innings and only one run allowed. He kept his record unblemished as he improved to 4-0 on the season, and 15-0 in 23 career starts at Marlins Park.
Zimmermann took the loss, going six innings with three earned runs to his credit.