First-half run helps No. 29 San Bernardino Valley upset No. 1 Fullerton