Kyle Turris scored twice as Ottawa beat Washington 3-1 to snap the Capitals eight-game winning streak.
"I thought this was the most complete game we've played in quite a while," MacLean said. "For the most part that was a real solid game from start to finish from all of our players."
Cory Conacher had the other goal for the Senators (23-14-6), who won their fourth straight. Craig Anderson made 18 saves to get the win.
Mike Ribeiro scored for the Capitals (24-18-2), who got 35 stops from Braden Hotlby.
While they managed to keep it close, the Capitals never managed to gain momentum.
"They played a very good game and had their speed all night," said Holtby. "You've got to give credit to them, but there's some stuff we would like to do better. Some nights you just don't come out on top."
While Anderson was rarely tested, he did make some timely saves to bail out his team out in the third.
With the Senators holding a 2-1 lead midway through the final period, Anderson made a huge save on Eric Fehr who was allowed to go in all alone.
"We did a lot of good things," said Anderson. "When all five guys are working as one unit and everyone is on the same page we're able to snuff out some of their offensive chances and turn the puck the other way. I thought it was one of our best games."
Turris then added an empty-net goal with 1:27 remaining to seal the win for Ottawa, which sits sixth in the Eastern Conference, one point back of fifth-place Toronto with a game in hand.
The Capitals, meanwhile, are first in the Southeast Division and third in the conference, but just two points up on ninth-place Winnipeg.
The Senators were anxious to make a statement against the Capitals on Thursday, who they could face in the playoffs.
"It's a potential playoff match-up and with how hot they were right now we just wanted to come out and play our game and take it to them," said Turris.
Turris opened the scoring early in the second, beating Holtby with a shot the Capitals goalie should have stopped off the rush for his 100th career point.
Chris Neil nearly made it 2-0 after taking a pass through the middle and making his way around Mike Green, but saw his shot bounce off the post and stay out.
The Capitals tied the game midway through the period as Ribeiro, standing just outside the crease, hit the puck out of mid-air to beat Anderson.
But the Senators got the lead right back just over two minutes later when a bad pass from behind the net by Holtby landed right on Conacher's stick who easily made it 2-1 on the turnover.
"I got a little rushed with the pressure on me," said Holtby. "I had to make a blind pass and didn't execute it."
The Senators did a good job limiting Alex Ovechkin's opportunities as he was held to just four shots. Ovechkin admitted the team seemed to lack emotion and never really took control of the game.
"We didn't make a lot of shots on them and we didn't have a very good start," said Ovechkin. "(Holtby) played well, but you know."
The Senators have won eight of their past ten at home versus Washington. That includes a 3-2 victory on Jan. 29 in the first of three scheduled meetings between the teams this season. They will also battle in Washington on April 25.
Nicklas Backstrom left midway through the third after being hit in the left arm by a Green slapshot.
"It caught him in the arm," said Green. "He's all right, but I definitely gave him a bruise so I hope everything's OK."
Capitals coach Adam Oates said Backstrom would be re-evaluated in Montreal on Friday.
Notes: Senators C Mika Zibanejad celebrated his 20th birthday Thursday. C Jim O'Brien, C Peter Regin, LW Matt Kassian, C Mike Hoffman, D Mike Lundin and D Andre Benoit were healthy scratches for the Senators. Ottawa is without C Jason Spezza (upper body injury, day-to-day) and D Erik Karlsson (Achilles, indefinite). ... The Capitals were without C Brooks Laich (strained groin, out indefinitely), RW Joel Ward (knee, out indefinitely) and D Tom Poti (back, indefinitely). LW Wojtek Wolski and D Jeff Schultz were a healthy scratches.