PORTLAND, Ore. -- Greg Oden had just one word to describe how he felt after arguably his best game of the season.
"Hungry," he said, showing off his goofy side Monday night after he scored a career-high 24 points and added 15 rebounds in the Portland Trail Blazers' 102-85 victory over the Milwaukee Bucks.
It was Oden's team-high 12th double-double of the season. The 7-foot center, the top pick in the 2007 draft, is playing as a rookie after missing all of last season because of microfracture surgery on his knee.
• Portland improved to 15-4 at home (10-12 on the road).
• Greg Oden led all scorers with a career-high 24 points to go with 15 rebounds, his 12th double-double of the season.
• The Bucks got a double-double from Charlie Villanueva (23 points, 10 boards), his second in his last three games and seventh of the season.
-- ESPN research
Oden's season got off to a bumpy start because of a foot injury in Portland's opener. Later, rookie growing pains clearly got inside his head and he turned serious, a departure from the jokester who named his puppy Charles Barkley McLovin' and sang karaoke -- badly -- to the delight of YouTube viewers.
But on Monday night, the grim expression he had recently worn vanished. He nodded in acknowledgement when he left the game and was rewarded with a standing ovation, and he wore a toothy smile when he high-fived fans on the way to the locker room.
"The attitude he had tonight was better. Some nights he's a little down or has a little foul trouble," Blazers guard Brandon Roy said. "Tonight he was vocal and stayed with it, so hopefully he can have some carryover from this game."
Milwaukee had alternated wins and losses in its previous 13 games -- the franchise's longest streak without consecutive wins or losses. The Bucks were coming off a 101-92 loss to the Los Angeles Clippers on Saturday.
The Bucks were without top rebounder Andrew Bogut, who missed his third straight game because of back spasms. Bogut is averaging 10.4 rebounds a game.
Bogut's absence helped Oden, and the Bucks were forced to go with a smaller lineup when Dan Gadzuric got into foul trouble. It also helped that Oden finished with just two fouls in just over 35 minutes of play.
"Everyone seems to have their coming out party on us, and tonight it was Greg Oden," Bucks coach Scott Skiles said. "He just dominated us. We didn't have any answers for him. We tried to front him, we tried to play behind him, and he hurt us."
Oden said he felt comfortable with his shooting, and his teammates encouraged him.
"This feels good," he said. "It gets my confidence up."
The Blazers remained without starting point guard Steve Blake, who injured his right shoulder on the Blazers' road trip. Sergio Rodriguez has been starting in his place.
Portland led by 11 points in the first quarter but the Bucks narrowed it to 31-30 midway through the second on Michael Redd's layup. Milwaukee could not pull closer, and the Blazers led 45-40 at the break.
Portland extended the lead to 68-53 on rookie Jerryd Bayless' 3-pointer in the third quarter.
Milwaukee made a move in the fourth, closing to within 76-71 on Villanueva's 3-pointer. Travis Outlaw answered for the Blazers with a dunk and a free throw, and Portland kept the Bucks at bay the rest of the way.
The Blazers were playing the first of a three-game homestand after going 2-2 on an eastern trip.
The Trail Blazers have won their last four against the Bucks. ... The NBA announced earlier Monday that Blazers forward Rudy Fernandez will participate in the slam dunk competition during the All-Star Game festivities. Fernandez, a rookie from Spain, was voted into the competition by fans who voted online. He was up against fellow rookies Russell Westbrook of the Thunder and Joe Alexander of the Bucks.