It’s already mentioned as a distinct part of the Seder in the piyyut for shabbat hagadol composed by R. Yosef Tuv Elem (980 - 1050).
After instructing that one eats karpas, he writes:
וְכַד אָכִיל יֶחֱצֶה אַחַת מִשָׁלֹשׁ מַצוֹת וְאֵין בְּרָכָה עִמָּהּ. מַחֲצָה בִקְעָרָה וּמַחֲצָה בְשֻׁלְחָן לְהָשִׂימָה
And when one eats he should break one of the three matzot without reciting a blessing; half is left on the plate and half is placed in the table.
He then goes on to describe removing the cooked foods from the plate, reciting ha lachma anya, pouring the second cup, and asking mah nishtanah.
In terms of why it’s done this way (rather than say preparing a broken matzah before the Seder starts) I conjecture that it’s done in order to prompt the children present to ask questions.
Consider the description found in the piyyut. We’ve made kiddush and eaten an appetizer. We’ve brought the food and bread to the table. It looks like the main meal is about to start. We then break the bread. But instead of eating it, we put it to one side. We then start taking food off the table, and pour another cup of wine. All this should hopefully prompt the children to ask for an explanation of what’s going on.