Bearing in mind Chazal, who say that curse of a Tzadik always comes true, when did that of Reuven materialize?
Ba'al ha'Turim: It materialized with the death of Dasan and Aviram in Parshas Korach. 1
See Ba'al ha'Turim.
What right did Reuven have to offer his two sons to be killed?
Seforno: He meant that Ya'akov should curse them that they should die. 1
Riva #1, Hadar Zekenim #1: If I do not return Binyamin, I am liable that my sons die due to you, i.e. due to my sin against you.
Riva #2, Hadar Zekenim #2: You should make them poor, and an Oni is like a Mes; you will not give to them an inheritance in Eretz Yisrael. 2
Targum Yonasan: What Reuven meant was that Ya'akov should place on them a Shamta
The Seforno adds that he wanted him to curse them already now, and that should he fail in his mission the curse would take effect retroactively - like Rav cursed Shmuel in Shabbos, Daf 108a.
Hadar Zekenim: This is why it says "Yechi Reuven v'Al Yamos" - the inheritance of his sons is greater than others, like we find in Sefer Yehoshua. (The Ramban (Bamidbar 35:14) says that Ever ha'Yarden was very big. There were more men in Shevet Reuven than in Gad or in half of Menasheh, so it is reasonable that Reuven's share would be biggest. I do not see a source from Sefer Yehoshua (13:15-21) which lists cities of Reuven, but far more cities of Yehudah (Yehoshsua15:21-62), and in Ever ha'Yarden itself, Menasheh received all 60 cities of Og (Yehoshua 13:30)!) (PF).
Peirush Yonasan: As was common in those times. See for example Shabbos 130b and Bava Metzi'a 70a). See also Na'ar Yonasan.
Oznayim la'Torah: This also explains why Reuven said "Sh'nei Banai"
Reuven had four sons (Chanoch, Palu, Chetzron and Karmi). Why did he say "my two sons"?