The 33-year-old Welshman is headed to the Windy City after scoring eight goals for Toronto FC last season.
The 33-year-old Welsh forward scored eight goals in his only MLS season last year. He most recently played for second-tier English side Blackpool, making one appearance this past spring.
MORE: Coach Ted Lasso returns! | Porter challenges Guardiola | WAGs
"Robert is a veteran player with a wealth of international experience," said Fire coach Frank Yallop in a news release. "He's a gifted, natural goal scorer who is already familiar with the league, and we're glad to have him join the Fire as we continue the second half of the MLS campaign."
Earnshaw, who has 58 caps for Wales, also has played in Britain for Cardiff City, West Brom, Norwich City, Derby County and Nottingham Forest.
The Fire (4-5-13) are in eighth place in the Eastern Conference but sit just two points beyond playoff positioning.