The only other touchdown in the first title game for Pearland (16-0) came on a play that fooled all 43,321 in attendance at Cowboys Stadium.
With nine Pearland players standing in place after a silent-count snap to quarterback Trey Anderson, Samuel Ukwuachu ran past the confused Trinity defense and caught a 54-yard scoring pass.
Garrison scored on runs of 6, 3 and 2 yards, the final one putting Pearland ahead 28-17 early in the fourth quarter.
Brandon Carter ran in from 2 yards to pull Trinity (15-1) within four on the next drive, but a final possession ended on downs when a pass slipped through Carter's hands at the goal line with 6 seconds left.
A year ago, Trinity celebrated wildly when Carter made an acrobatic catch in overtime to win the state title. This time, Carter lay motionless in the end zone for several seconds before getting up and slamming his helmet to the turf.
Trinity, which was No. 1 in the state all season in The Associated Press poll, was trying to win its fourth title since 2005. Instead, the Trojans lost in the championship game for the first time since 1992.
Pearland caused confusion for the Trinity long before the silent-count play. The Oilers took the lead for good with a 78-yard drive that featured power runs from Garrison, finesse throwing in the spread by Anderson and two timeouts from Trinity while trying to figure it all out.
Anderson had completions of 19, 12 and 15 yards before Garrison's second TD made it 14-10 late in the second quarter.
The third-largest crowd to see a championship game in Texas was rowdy most of the night playing to the giant video screens above the field, but Cowboys Stadium was mostly silent when Pearland lined up for the play of the game.
Facing a routine second-and-5 near midfield midway through the third quarter, the Pearland offensive line stood up in place after the snap to Anderson, and Ukwuachu was the only player who took off.
By the time the Trinity cornerback realized what was going on, it was too late to catch up. Ukwuachu, who had three catches for 78 yards, hauled in the pass at the 15 and strolled into the end zone for a 21-10 Pearland lead.
There wasn't any trickery in Pearland's next possession. The Oilers lined up mostly in power formations, and the longest gain was 10 yards on a 15-play, 67-yard drive that put Pearland up 28-17 with 10:34 remaining.
Trinity's Tevin Williams opened the scoring with a 56-yard run less than two minutes into the game. He hurdled a defender at midfield and went the rest of the way untouched. He finished with 134 rushing yards.
Anderson was 17 of 23 for 202 yards and a touchdown, and escaped a heavy rush for a 25-yard scramble that helped Pearland run time off the clock late in the fourth quarter.