After Johnson departed leading 2-1, the Rockies loaded the bases with two out. Seth Smith then hit a liner, and Veras reached up to catch the ball in the web of his glove.
"As soon as I feel it, I said, 'Wow, I've got it. Thank you God for that," Veras said. "I just want to get the job done in that situation for JJ."
Johnson watched Veras' pivotal play from the dugout.
"I didn't even see that he caught it," Johnson said. "Then he's holding the ball in his glove and looking at it. I said, 'Attaboy.'"
The Rockies likely used more colorful language.
"The way that Veras finishes on his delivery, he kind of fell a little bit in that direction and actually fell right into the line drive," Colorado manager Jim Tracy said.
Despite a sputtering offense, the Marlins have won five of their past six games, including four victories by one run. Now one game below .500 heading into a weekend series against NL East leader Atlanta, the Marlins consider themselves playoff contenders.
"Absolutely," Johnson said. "We've thought that since day one. There's a little sense of urgency. But when you have a guy like Bonifacio stepping up and being that spark plug that we need, it's huge."
With the score 2-all, Bonifacio hit his first triple of the year to start the ninth against Jhoulys Chacin (5-8), who then gave up two intentional walks to load the bases. On the next pitch, Paulino singled through the drawn-in infield.
That triggered one final roar from the "camp day" crowd of 29,102, the Marlins' largest at home since May 1.
"This team is showing some character," said Edwin Rodriguez, who became manager June 23. "I like what I see."
Especially from Johnson, who struck out 11 in 6 1/3 innings and allowed only one run -- on a homer by Ian Stewart in the second inning. Johnson lowered his ERA to 1.61, best in the majors.
On a sunny, 89-degree day, Johnson threw 120 pitches. He has not allowed more than two runs in his past 13 starts, and has gone at least six innings in 18 consecutive starts.
"The way he pitched, you want to win no matter what," Bonifacio said.
Leo Nunez (4-2) struck out the side in the ninth.
The injury-plagued Rockies fell to 2-5 since the All-Star break.
"We've put ourselves in opportunities to win, but we're just not finishing the game," first baseman Jason Giambi said.
Along with the near-miss in the seventh, the Rockies squandered a chance to take the lead in the eighth. They tied the game when Jonathan Herrera led off with a double against Clay Hensley and scored on Giambi's single.
Hensley hit the next batter but kept the score tied with the help of a double-play grounder by Stewart.
"We got snakebit a little bit in the seventh, and we missed a great opportunity in the eighth," Tracy said. "That's simply what the game boils down to."
One bright spot for Colorado was Jorge De La Rosa's best start this season. The left-hander, making his third start since returning from a finger injury, allowed only three hits and two runs in six innings.
Stewart hit his 13th homer -- only the fifth allowed by Johnson this season -- and that was the Rockies' lone hit until the fifth.
Marlins SS Hanley Ramirez was held out of the starting lineup for only the fourth time this season. He's 4 for 23 since the All-Star break. Sanchez took his spot in the order, batting third for the first time this season. ... Rockies CF Carlos Gonzalez is day to day with a bruised left index finger that forced him out of Wednesday's game. ... OF Dexter Fowler (left wrist) is also day to day. ... Also out of the starting lineup was RF Hawpe, who is in a 2-for-17 slump. ... Colorado RHP Aaron Cook, scheduled to start Friday at Philadelphia, is 1-5 against the Phillies with a 5.70 ERA. ... Florida improved to 9-2 in home day games.