You could align the first row left, and the other two right.
To make the poem not take the whole width of the page, you can add width limitations on the element.
(Please clarify these things in the question's text.)
Example: http://jsfiddle.net/hhh87/4/
<div style="text-align: right; min-width:300px; max-width: 40%;">
<div style="text-align: left;">"Knowing is not enough, we</div>
<div>must apply. Willing is not</div>
<div>enough, we must do."</div>
</div>
CSS Alternative
Of course, Ideally you would use a CSS file and not set the styles inline.
Then you could also style it more generically:
HTML:
<div class="poem">
<div>"Knowing is not enough, we</div>
<div>must apply. Willing is not</div>
<div>enough, we must do."</div>
</div>
CSS:
.poem > * {
text-align: right;
min-width: 300px;
width: 40%;
}
.poem > *:first-child {
text-align: left;
}