The Portland Sea Dogs have followed a 10-game winning streak with a losing skid that has reached three games.

But Portland continues to inch closer to a first-place finish in the Eastern League East Division.

Despite a stellar start from left-hander Brian Johnson, the Sea Dogs lost 3-1 to the Reading Fightin Phils on Thursday night at Hadlock Field.

Portland dropped to 85-53 but remained two games ahead of second-place Binghamton (83-55), which lost to New Britain 5-3 after blowing a 3-2 lead in the ninth.

With four games to go in the regular season, the Sea Dogs’ magic number is two (two Portland wins, two Binghamton losses or a combination).

The last-place Phils improved to 62-76.

Portland’s final four games are against Harrisburg (52-86), Friday through Monday at Hadlock.

On Thursday, Johnson started for the Sea Dogs and threw five shutout innings, lowering his ERA to 1.75. He left after only 69 pitches.

“Organizational decision,” pitching coach Bob Kipper said of the short outing. “Pretty simple.”

The Red Sox, like most organizations, are wary when a pitcher makes a big jump in innings in one year.

Johnson has thrown 1432/3 innings this season, counting his first month in Class A Salem. This is his first injury-free year. He threw only 85 innings last season, so the Red Sox are going to be cautious with their prized prospect, especially with the playoffs coming up.

“He will pitch in the playoffs,” Kipper said.

Johnson figures to be the Game 1 starter in the first round next Wednesday. He could get three starts in the postseason.

This has been an impressive year for Johnson, a first-round draft pick in 2012. He finished second in the voting for Eastern League Pitcher of the Year to former teammate Henry Owens, and has a 10-2 record.

Johnson left with a 1-0 lead, courtesy of Keury De La Cruz’s RBI single in the third inning.

At one point, Johnson retired 13 straight. He allowed two hits and no walks, striking out one. Of his 69 pitches, 47 were strikes.

“He fills (the strike zone) up,” catcher Carson Blair said. “It feels like a video game. Wherever I put the glove, he’s there.”

After the top of the fifth, Kipper gave Johnson the news.

“He said I was going to come out after five innings no matter what,” Johnson said. “I felt fine. Had a good mix going.”

Pete Ruiz (3-2) relieved in the sixth and allowed the tying run on a hit batter, bunt and single.

In the seventh, Ruiz gave up a double and three walks, forcing in the go-ahead run. Dayan Diaz walked in another run.

NOTES: The announced paid attendance was 6,967. … Ruiz was moved from the inactive list to the roster. He replaced starter Luis Diaz, who went on the disabled list (back spasms).