Как ни странно, так и не придумал, как решить эту задачу в лоб, под ваши условия.
Если сделать float:right то во-первых нужно поменять блоки местами, обратный порядок вывода элементов, про него часто забывают, во-вторых нужно будет каким-то образом опустить блок до нижнего угла. Что проблема, т.к. если сделать это марджином, то текст не будет обтекать.
Дальше у нас куча хаков, в зависимости от вашей задачи.
Если это просто нарисованный уголок, то лучше всего задать его background-position:bottom right.
Или можно задать контейнеру абсолют, тогда можно будет воспользоваться right: 0 и bottom: 0, задав красному квадрату тоже абсолют. Правда обтекания все равно не будет.
Сейчас еще подумаю.