The verse should probably be understood as
Therefore God said,
I wont put up with man endlessly,
he being flesh [whereas I am spirit],
So [I will limit] his days to 120 years
The MT is
לֹֽא־יָד֨וֹן רוּחִ֤י בָֽאָדָם֙ לְעֹלָ֔ם
בְּשַׁגַּ֖ם ה֣וּא בָשָׂ֑ר
וְהָי֣וּ יָמָ֔יו מֵאָ֥ה וְעֶשְׂרִ֖ים שָׁנָֽה
The initial ו in ויאמר should be understood as a consequential vav, "Therefore", rather than the connective vav, "And", as this verse appears to indicate God's response to the events of the previous verses, especially the immediately preceding verse.
In the second clause, the word רוחי should probably be understood as part of the idiomatic expression ידון רוחי. So instead of translating רוחי on its own as "my breath" or "my spirit", the entire idiom should be translated as "I wont tolerate" or "I wont deal with" or "I wont contend with". This understanding reads against the Masorete marking pashta etiv pashta, ("will not contend, my spirit...") and reads instead pastha teres tvir, ("I wont tolerate...") but results in a simpler and clearer understanding than the common translations that read with the Masorete markings in this clause.
The ב and ש in the בשגם at the start of the third clause have aroused much commentary and differences in translation, as the shin is pointalized with a patah instead of the expected segol. Rashi dismisses this and reads this patah as a segol and brings as an example a similar transcription in Judges 5:7. Rashi's reading can be supported by the fact that there was no segol in the Babylonian system of pointalization, from which this word could have received its tradition. In any event, the meaning of בשגם appears to be ב-ש-גם, "in that also [merely] he is flesh", which in English is "he being flesh" or "he being only flesh".
The בשר, "flesh", of the third clause provides an indirect contrast and counterbalance to the רוחי of the second clause. The contrast is indirect because the רוח in ידון רוחי is not "spirit" but the idiom "I will not contend with".
This interpretation expands on Rashi's interpretation of the verse.
The Onkelos Aramaic translation is blunt, no "spirit":
וַאֲמַר יְיָ לָא יִתְקַיַּים דָּרָא בִּישָׁא הָדֵין קֳדָמַי לְעָלַם בְּדִיל דְּאִנּוּן בִּסְרָא וְעוֹבָדֵיהוֹן בִּישִׁין אַרְכָּא יְהִיב לְהוֹן מְאָה וְעַסְרִין שְׁנִין אִם יְתוּבוּן
Which I render as:
Therefore God said, I wont let this foul generation stay before me forever. Because they are flesh and their deeds are foul, I will set them a limit, 120 years, if they behave well.