Brandon League pitched a 1-2-3 eighth and Shawn Kelley allowed a solo ninth-inning home run by Baltimore's Ty Wigginton.
Kotchman drove in a run with a double in the bottom of the seventh and Jack Wilson was 3-for-4 with two doubles and a run scored for the Mariners, who won for the fifth time in their last six games.
Luke Scott drove in a run for the Orioles, who are 2-12 to start the season.
Baltimore starter Brad Bergesen (0-2) gave up seven runs on six hits and three walks in 2 2/3 innings.
The Orioles committed two errors.
Boston schools pull out free condoms over wrapping complaints
Ray Liotta sues skin care company over use of likeness