Navy held on to beat Oklahoma 21-20 in the Lockheed Martin Armed Forces Bowl Friday after its defense denied a late two-point conversion attempt.