Kyle Tucker led off with a single off Hunter Harvey (2-3), and Abreu followed with an infield single. Yainer Diaz struck out before Corey Julks walked to load the bases to set up Jake Meyers' grounder to short.
CJ Abrams threw home to get the second out, but Ruiz's throw to first went off Meyers' helmet and allowed Abreu to score.
The Nationals argued the final play with the umpires, saying that Meyers was out of the baseline, but to no avail.
Washington manager Dave Martinez began his postgame availability by holding up a picture that showed Meyers running on the grass on his way to first.
"There it is right there," Martinez said. "Take a look at it. Is that on the line? I don't think so. I'm over this play. Seriously. They need to fix the rule. If this is what the umpire sees that he's running down the line, I'm tired of it. I'm tired of it. Fix it. We lost the game, and he had nothing to say about it because he can't make the right call. Brutal."
Martinez said he was not given an explanation beyond that plate umpire Jeremy Riggs saw Meyers run down the line.
"I think they were disputing whether he was in the baseline or not," Houston manager Dusty Baker said. "That's always a questionable call. Nobody really has the vantage point very good except really the home plate umpire, and he said it was nothing."
Meyers said he ran up the line and collided with first baseman Michael Chavis' glove, adding that he was touching the base.
"I think that kind of sent the ball elsewhere," Meyers said. "I'm not really sure, but I know we scored, and we won. That's good."
Washington rallied for three runs in the ninth off Houston closer Ryan Pressly (1-2). Joey Meneses reached on an error by Alex Bregman to start the inning and scored on an RBI double by Corey Dickerson.
After Ruiz grounded out, Ildemaro Vargas grounded to the pitcher, but Pressly threw wide to home, allowing Dickerson to score. Dominic Smith tied it at 4 with an RBI triple, but Pressly recovered to get two groundouts to end the inning and keep it tied.
"What was going through my mind was we had to get out of there with at least a tie because we had some horses coming up in the ninth," Baker said. "We gave them three runs in the ninth, and they gave us one run in the bottom of the ninth."
Abreu hit a two-run double in the first, and Abreu and Diaz hit back-to-back solo home runs in the fourth to make it 4-0. Abreu finished with three hits and is 5-for-7 in the two games against Washington.
Framber Valdez allowed one run on five hits with six strikeouts in seven innings. He lowered his ERA to 2.27. Valdez has allowed one run or fewer in four of his past five starts.
The Nationals got a run back in the fifth on an RBI groundout by Abrams, scoring Smith, who had doubled to lead off the inning.
Josiah Gray allowed four runs on six hits with five strikeouts in seven innings. It was the second time in the past three games Gray has surrendered four runs.
Washington has lost eight of its past nine games.