Beckham had three hits and Jim Thome two for the White Sox, who have won 12 of their last 17 games.
Winner Mark Buehrle (10-3) gave up a run and eight hits in 7 1/3 innings.
Closer Bob Jenks recorded his 21st save despite surrendering two runs in the top of the ninth.
Nolan Reimold led Baltimore with two hits and two RBI. Brian Roberts had three hits and one RBI, while Ty Wigginton and Nick Markakis added two hits apiece for the Orioles, who have split their last four games.
Losing pitcher Brad Bergesen (6-4) gave up four runs -- two earned -- and 10 hits in six innings.