If you missed any of the action in MLS during Week 3, you missed a lot of goals. There were 32 of them, to be exact, and every game had at least two. Four of them were scored by the Portland Timbers, who look very scary.

After three games, the Timbers have 10 goals, and it’s tough to see how anything but an injury crisis can slow them down. They’ve scored them every way you can — goals from slow build-up, counters and set pieces, through brilliant combination play and stunning individual efforts. Five different players have found the back of the net.

Elsewhere, NYCFC turned in a solid performance, but they’re not doing a good job of masking Andrea Pirlo’s deficiencies. Atlanta impressed again, with a rookie making the best play of the week anywhere in MLS. And FC Dallas pulled off a comeback win, but not in the way you’d expect them to.

Saturday’s games

New York City FC 1-1 Montreal Impact

Atlanta United 4-0 Chicago Fire

Vancouver Whitecaps 0-2 Toronto FC

D.C. United 0-2 Columbus Crew SC

Orlando City 2-1 Philadelphia Union

FC Dallas 2-1 New England Revolution

Sporting Kansas City 2-1 San Jose Earthquakes

Colorado Rapids 2-2 Minnesota United

Real Salt Lake 1-2 LA Galaxy

Portland Timbers 4-2 Houston Dynamo

Sunday’s game

Seattle Sounders 3-1 New York Red Bulls

So the Timbers’ attack is seriously nasty

The quartet of Diego Valeri, Darlington Nagbe, Diego Chara and Fanendo Adi has done some great things over the last couple of years. But the Timbers needed the right winger and the right defensive midfielder to reach their full potential. Now that Sebastian Blanco and David Guzmán are in the starting XI, Portland’s attack is flying.

Here’s how Adi capped off the Timbers’ scoring against the Dynamo. This is just outrageous stuff.

You might think that Blanco — a talented DP winger out of Argentina — was the biggest missing piece, but it was probably Guzmán. Before he arrived, Chara’s partners were mostly limited true holders or very attacking midfielders that forced Chara to sit deep and limit his game. With the more dynamic and balanced Guzmán as a partner, Chara can dribble and run forward, while occasionally holding to let Guzmán do the same. Portland’s third goal came from the midfielder’s picking a smart spot to switch roles, letting Guzmán combine with Nagbe and get on the scoreboard.

Now, to temper your excitement a bit: Portland might have the best attack in MLS now, but it’s not clear that all of their problems from last year have vanished. Guzmán’s arrival has taken a lot of pressure off the Timbers defense, but their back line is still flimsy, while goalkeeper Jake Gleeson has made a couple of errors this season.

Still, they’re better equipped to win shootouts than they were last season. Portland might not be the best team in MLS, but they’re a very good one, and the quality of their front six is indisputable.

OK, we must oblige the Sounders fans

Your attack is good too! The Joevin Jones nutmeg setup was outrageous. Ending New York Red Bulls’ undefeated streak was impressive. I hope I have done enough to prove to you that I am not biased, or as it’s more commonly stated online, “YOUR BIAS.”

Andrea Pirlo isn’t bad. He just doesn’t fit.

Since he’s arrived in MLS, Andrea Pirlo has caught a lot of criticism for being really bad on defense. And honestly, this isn’t his fault. He’s still an extremely useful player if you limit situations where he might get isolated in space.

NYCFC isn’t doing this at all. They’re playing with an extremely high press and asking Pirlo to do a ton of work. And there’s a lot of reason to believe that they’re better off changing their DM than changing the system to fit Pirlo.

Here’s a moment in the first half of NYCFC’s match against Montreal where their two central players ahead of Pirlo — Maxi Moralez and Alexander Ring — pressure aggressively. Moralez’s excellent pressing forces Impact fullback Chris Duvall to make a risky pass to Calum Mallace, which results in a turnover. Ring closes down this space in less than two seconds and sets up what becomes a clear-cut chance.

But what happens when NYC doesn’t close down the space fast enough? Pirlo gets hung out to dry. In the second half, Moralez and Ring weren’t moving quite as quickly, giving Montreal chances to attack the center of the pitch with long balls that beat Pirlo.

It would be unfair to say that any of Ring, Moralez or Pirlo is playing poorly. They just fit different systems. If Patrick Vieira is committed to a very aggressive five-man high press — and on the evidence of the 14 shots inside of the box his team created against Montreal, he should be — he needs an athletic DM who can cover a lot of space quickly. Otherwise, NYCFC is going to keep drawing games where they were the superior team.

Julian Gressel made the play of the week

This wasn’t a goal or an assist, but it did more to alter the outcome of a game than any play you can see on a box score this week. Check out rookie Julian Gressel stealing a throw-in and quickly playing a perfect through ball to Josef Martinez, drawing a red card.

Kapelhoff deja con 10 hombres al Chicago Fire. pic.twitter.com/wNHAhNKX8k — Univision Deportes (@UnivisionSports) March 18, 2017

Just like that, game over for the Chicago Fire. Gressel made a play so good that it effectively ended the match and almost guaranteed three points for Atlanta.

Everyone’s favorite pretty passing team went all Tony Pulis

FC Dallas might play the best soccer in MLS, and their passing style is a huge reason why their head coach Óscar Pareja is a popular pick for next USMNT manager. Sometimes your favored style isn’t the best way to win, though. Sometimes you need to boot it and run.

Maxi Urruti scored two second half goals to fire Dallas to a win over New England, and they looked pretty similar. Both were created by long balls, though the setup for the first goal by Maynor Figueroa was a bit more skillful and targeted. This second goal is just straight up dump-and-chase, and it worked.

MLS Live power rankings

This is not a ranking that has anything to do with how good a team is at soccer. It's simply about how likely you are to be entertained if you choose to watch their game on MLS Live.

Atlanta United Portland Timbers Seattle Sounders Minnesota United Houston Dynamo FC Dallas New York City FC Toronto FC New York Red Bulls Orlando City LA Galaxy Vancouver Whitecaps Montreal Impact Sporting Kansas City Chicago Fire Colorado Rapids Real Salt Lake Columbus Crew SC Philadelphia Union San Jose Earthquakes New England Revolution D.C. United

This year’s huge yo-yo team is probably going to be the Quakes. I don’t know how to feel about them right now, and I had to drop them quite a bit after other teams played games I liked watching a lot more than theirs. Timbers and Sounders did enough going forward to move ahead of Minnesota, who looked like a somewhat competent team against Colorado. That’s good for their fans, and bad for this ranking.

Here is a list of way-too-early takes that are not worthy of an entire column. You should argue with me about them.

My belief that Toronto and Seattle are still the league’s two best teams got a lot stronger this week. The Timbers know their defense is suspect and they’re on the hunt for a big time June signing. The Chicago Fire aren’t as bad as their showing against Atlanta. That early red was a killer. Josef Martinez will slow down a bit, but Miguel Almiron won’t. Once again: he’s an MVP candidate. It’s Week 3 of Sean Davis struggling to fill Dax McCarty’s boots. Know who’s really good? Tyler Adams! D.C. United needs... something. A new signing? A swift kick up the backside? They’re extremely flat, and their worst player through three weeks has strangely been last year’s breakout star, Steve Birnbaum. I don’t know what’s wrong with them, but they look extremely bad. Orlando City is going to have a difficult time keeping hold of Cyle Larin this summer. Doubling down on Mike Petke being RSL’s manager by July.

Here is a photo I love from this week’s games

Sounders legend Zach Scott can’t even believe he won MLS Cup. You deserve it buddy.

Have a great week!