Hamilton, who hit a career-worst .250 last season, is batting .417 in spring training.
Hamilton's third-inning double was a few inches shy of becoming his second home run of the spring. The ball appeared to hit near the top of the center field fence and umpires used video to review the play. But the original ruling stood—double.
Cubs left fielder Junior Lake hit his fourth home run in three days, off Matt Shoemaker in the fifth inning.
Mike Trout went 1 for 2 and Albert Pujols had a sacrifice fly.
Los Angeles closer Ernesto Frieri worked a perfect 1-2-3 third inning. In eight innings pitched this spring, Frieri has yielded no runs and two hits.
Cubs Park set a Cactus League single-game attendance record with 15,276 spectators.
Angels: Brandon Lyon had his worst outing of the spring, allowing two earned runs on four hits in 1 1/3 innings. After working a 1-2-3 first inning, Lyon sputtered in the second. In seven previous spring appearances Lyon, a non-roster invitee battling to make the active roster, had given up two earned runs on five hits.
Cubs: Tsuyoshi Wada, cut on Sunday and signed to a minor league contract on Monday, pitched four solid innings.
Angels: Reliever Sean Burnett, rehabbing from left forearm surgery in August, completed a bullpen session Tuesday, but Scioscia said the 31-year-old is not yet 100 percent.
"Don't think he got to be where he felt he was turning the ball loose like he needs to," he said."
Burnett has not thrown a pitch during a Cactus League game this spring and will begin the season on the disabled list.
Angels third baseman David Freese, penciled in as the cleanup hitter for Tuesday's game, was a late scratch because of stiffness in quadriceps. Manager Mike Scioscia said Freese could have played but the team was being extra cautious.
Ian Stewart played in Freese's place and went 3 for 5, hitting a three-run home run in the ninth that sparked the Angels' rally
Cubs: A sore left ankle scratched outfielder Justin Ruggiano from Tuesday's lineup. Ruggiano is batting .297 with two home runs in the spring.
Cubs center field and top prospect Albert Almora made a nifty, sliding catch of Colin Cowgill's fly ball that ended the fourth inning. But Almora jammed his right leg into the wall and Lake signaled for trainers to attend to him.
MCDONALD MAKES ANGELS ROSTER
The Angels added the contract of infielder John McDonald to the 40-man roster on Tuesday, ensuring that the 39-year-old will be on the Opening Day roster. McDonald, a 15-year veteran who signed a minor league contract in January, is batting .321 in spring training.
Angels: Left-hander C.J. Wilson (1-2, 2.49 ERA) will make his sixth and final spring start Wednesday against Oakland.
Cubs: Right-hander Jeff Samardzija (0-1, 5.50) will make his final Cactus League start Wednesday against Arizona before he takes the mound on opening day at Pittsburgh.