Barcelona said in a statement the Serie A club agreed to the ¤12 million ($17 million) transfer, which includes an obligatory buyback clause at the end of the 2012-13 season when Krkic would cost the Spanish champion ¤13 million ($19 million). But if Roma blocks the move, the value of the original transfer improves to ¤40 million.
The 20-year-old Krkic, an Under-21 Spain international, scored seven goals from 35 appearances last season, mostly coming off the substitutes' bench.
Krkic exploded into Barcelona's squad in 2007-08 when he scored 10 goals and set a record as Barcelona's youngest scorer in the league at 17. But he was mostly confined to the bench with coach Pep Guardiola's arrival the following season, and leaves for Italy with 43 goals from 157 appearances over four seasons.
Krkic will join former Barcelona B coach and player Luis Enrique, who was recently hired by Roma.
The deal could be seen as a quick money injection for Barcelona, which paid Udinese ¤26 million ($37 million) for Chile forward Alexis Sanchez on Thursday and is currently negotiating with Arsenal over the transfer of Cesc Fabregas.
The European champions went into the summer with a transfer budget of ¤45 million ($65 million) and has also spent ¤2 million ($2.9 million) on forward Kiko Femenia.
Krkic's move brings the balance to ¤29 million ($42 million) with Arsenal eyeing a reported ¤40 million for Fabregas.