Liriano (4-6) came close to tossing his second no-hitter of the season and had a perfect game after six innings. But Adrian Beltre's lead-off single to center field in the eighth inning spoiled the left-hander's attempt at history.
Instead, he ended up allowing one run on two hits, didn't issue a walk and struck out nine. He threw 64 of his 98 pitches for strikes in racking up only the second complete game of his six-year career.
Liriano, who threw the fifth no-hitter in Twins history against the Chicago White Sox May 3, came tantalizingly close to becoming only the sixth major league pitcher in history with two no-hitters in the same season.
Michael Cuddyer knocked a three-run home run and Luke Hughes chipped in with three hits as the Twins won for the ninth time in their last 11 games.
Texas starter Matt Harrison (5-6) yielded two runs (one earned) on five hits in six-plus innings.
The Rangers went down to their fifth defeat in seven games.